home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 37
/
Aminet 37 (2000)(Schatztruhe)[!][Jun 2000].iso
/
Aminet
/
dev
/
lang
/
sofa.lha
/
sofa
/
smalleiffel
/
bin_c
/
compile_to_c19.c
< prev
next >
Wrap
C/C++ Source or Header
|
2000-03-25
|
85KB
|
3,588 lines
/*
-- ANSI C code generated by :
-- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.76Beta#1)--
-- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
-- Dominique COLNET and Suzanne COLLIN - colnet@loria.fr --
-- http://SmallEiffel.loria.fr/ --
*/
#include "compile_to_c.h"
T0* r51clients_for(T51* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(r51proper_has(C,a1)){
R=/*SSWARF2*//*X90clients*/(/*RF2*/((T198*)(r91at((T91*)((/*RF2*/(C)->_feature_dictionary/*54*/)),X82to_key(a1))))->_clients/*16*/);
}
else if(r51is_general(C)){
}
else if(((/*RF2*/(C)->_parent_list/*34*/))==((void*)(NULL))){
R=r51clients_for((T51*)(r51class_any()),a1);
}
else{
R=r57clients_for((T57*)((/*RF2*/(C)->_parent_list/*34*/)),a1);
}
/*FI]*/
return R;
}
T0* r51e_feature(T51* C,T0* a1){
T0* R=NULL;
T0* _key=NULL;
_key=X82to_key(a1);
/*[IF*/
if(r91has((T91*)((/*RF2*/(C)->_feature_dictionary/*54*/)),_key)){
R=r91at((T91*)((/*RF2*/(C)->_feature_dictionary/*54*/)),_key);
}
else{
R=r51super_e_feature(C,a1);
}
/*FI]*/
return R;
}
T0*oBC51going_up_trace=NULL;
T0*oBC51visited=NULL;
T0* r307try_to_undefine_aux(T307* C,T0* a1,T0* a2){
T0* R=NULL;
{T287*n=((T287*)malloc(sizeof(*n))/*44*/);
*n=M287;
r287from_effective(n,a1,(/*RF2*/(C)->_arguments/*20*/),(/*RF2*/(C)->_result_type/*56*/),(/*RF2*/(C)->_require_assertion/*28*/),(/*RF2*/(C)->_ensure_assertion/*32*/),a2);
R=((T0*)n);
}
return R;
}
T0* r307try_to_undefine(T307* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _fn2=NULL;
{T68 se_tmp0;
r66add_position((*(se_tmp0=X82start_position(a1),&se_tmp0)));
}
_fn2=r83feature_name((T83*)((/*RF2*/(C)->_names/*8*/)),X82to_key(a1));
/*[IF*/
if((_fn2)!=((void*)(NULL))){
X82undefine_in(_fn2,a2);
}
/*FI]*/
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC66explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T67*)((T67*)(oBC66positions))))->_upper)=(-(1));
/*]*/
/*]*/
R=r307try_to_undefine_aux(C,a1,a2);
/*[IF*/
if((R)!=((void*)(NULL))){
X284set_clients(R,(/*RF2*/(C)->_clients/*16*/));
r307merge_header_comments(C,R);
}
else{
r51fatal_undefine(((T51*)a2),a1);
}
/*FI]*/
return R;
}
void r307check_obsolete(T307* C,T68 a1){
/*[IF*/
if(((/*RF2*/(C)->_obsolete_mark/*24*/))!=((void*)(NULL))){
/*[IF*/
if(!((/*RF2*/((T49*)(oBC13small_eiffel))->_short_flag/*5*/))){
r66add_position(a1);
/*[IRF3.6append*/{T0* b1=((T0*)ms90_19170);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=(/*RF2*/((T161*)((/*RF2*/(C)->_obsolete_mark/*24*/)))->_to_string/*12*/);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
{T68 se_tmp0;
r66add_position((*(se_tmp0=r307start_position(C),&se_tmp0)));
}
r66print_as_warning((T66*)(oBC13eh));
}
/*FI]*/
}
/*FI]*/
}
T0* r307to_run_feature(T307* C,T0* a1,T0* a2){
T0* R=NULL;
{T395*n=((T395*)malloc(sizeof(*n))/*56*/);
*n=M395;
r395make(n,a1,a2,(T0*)C);
R=((T0*)n);
}
return R;
}
void r307error(T68 a1,T0* a2){
r66add_position(a1);
/*[IRF3.6append*/{T0* b1=a2;
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_error((T66*)(oBC13eh));
}
T6 r307is_not_mergeable_with(T307* C,T0* a1){
T6 R=0;
/*[IF*/
if(((/*RF2*/(C)->_result_type/*56*/))==((void*)(NULL))){
R=(X90result_type(a1))!=((void*)(NULL));
}
else{
R=(X90result_type(a1))==((void*)(NULL));
}
/*FI]*/
/*[IF*/
if(R){
/*[IRF3.6append*/{T0* b1=((T0*)ms90_64152);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
}
else{
/*[IF*/
if(((/*RF2*/(C)->_arguments/*20*/))==((void*)(NULL))){
R=(X90arguments(a1))!=((void*)(NULL));
}
else{
R=(X90arguments(a1))==((void*)(NULL));
}
/*FI]*/
/*[IF*/
if(R){
/*[IRF3.6append*/{T0* b1=((T0*)ms90_82612);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
}
else if(((/*RF2*/(C)->_arguments/*20*/))==((void*)(NULL))){
}
else if((/*(IRF4.6count*/(/*RF2*/(((T182*)((/*RF2*/((T178*)((/*RF2*/(C)->_arguments/*20*/)))->_flat_list/*8*/))))->_upper/*12*/)/*)*/)!=(/*(IRF4.6count*/(/*RF2*/(((T182*)((/*RF2*/((T178*)(X90arguments(a1)))->_flat_list/*8*/))))->_upper/*12*/)/*)*/)){
/*[IRF3.6append*/{T0* b1=((T0*)ms90_66660);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
R=1;
}
/*FI]*/
}
/*FI]*/
r307merge_header_comments(C,a1);
return R;
}
void r307set_header_comment(T307* C,T0* a1){
/*[IF*/
if(((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r44count(((T44*)((/*RF2*/(((T81*)a1))->_list/*8*/))))/*)*/)>(1))){
(/*SFN*/C->_end_comment)=a1;
}
/*FI]*/
}
void r307make_routine(T307* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
/*[IRF3.3make_e_feature*/((((T307*)(C)))->_names)=(a1);
/*]*/
(/*SFN*/C->_header_comment)=a4;
(/*SFN*/C->_arguments)=a2;
(/*SFN*/C->_obsolete_mark)=a3;
(/*SFN*/C->_require_assertion)=a5;
}
void r307make(T307* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7,T0* a8){
r307make_effective_routine(C,a1,a2,a4,a5,a6,a7,a8);
(/*SFN*/C->_result_type)=a3;
}
void r307add_into(T307* C,T0* a1){
T0* _fn=NULL;
T2 _i=0;
{T68 se_tmp0;
(/*SFN*/C->_base_class)=(/*RF2*/((*(se_tmp0=X82start_position(r83item((T83*)((/*RF2*/(C)->_names/*8*/)),1)),&se_tmp0)))._base_class/*0*/);
}
_i=1;
while (!((_i)>(r83count((T83*)((/*RF2*/(C)->_names/*8*/))))))
{
_fn=r83item((T83*)((/*RF2*/(C)->_names/*8*/)),_i);
/*[IF*/
if(r91has(((T91*)a1),X82to_key(_fn))){
_fn=/*SSFRF4*//*X90first_name*//*(IRF4.6first_name*/(/*RF2*/(((T83*)((/*RF2*/((T198*)(r91at(((T91*)a1),X82to_key(_fn))))->_names/*8*/))))->_first/*0*/)/*)*/;
{T68 se_tmp0;
r66add_position((*(se_tmp0=X82start_position(_fn),&se_tmp0)));
}
{T68 se_tmp0;
r66add_position((*(se_tmp0=X82start_position(r83item((T83*)((/*RF2*/(C)->_names/*8*/)),_i)),&se_tmp0)));
}
/*[IRF3.6append*/{T0* b1=((T0*)ms90_41470);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X82to_string(_fn);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms14_46);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_error((T66*)(oBC13eh));
}
else{
r91put(((T91*)a1),(T0*)C,X82to_key(_fn));
}
/*FI]*/
_i=(_i)+(1);
}
}
T6 r307can_hide(T307* C,T0* a1,T0* a2){
T6 R=0;
/*[IF*/
if(((/*RF2*/(C)->_result_type/*56*/))!=((void*)(X90result_type(a1)))){
/*[IF*/
if((((/*RF2*/(C)->_result_type/*56*/))==((void*)(NULL)))||((X90result_type(a1))==((void*)(NULL)))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X90start_position(a1),&se_tmp0)));
}
{T68 se_tmp0;
r307error((*(se_tmp0=r307start_position(C),&se_tmp0)),((T0*)ms90_64152));
}
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_arguments/*20*/))!=((void*)(X90arguments(a1)))){
/*[IF*/
if((((/*RF2*/(C)->_arguments/*20*/))==((void*)(NULL)))||((X90arguments(a1))==((void*)(NULL)))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X90start_position(a1),&se_tmp0)));
}
{T68 se_tmp0;
r307error((*(se_tmp0=r307start_position(C),&se_tmp0)),((T0*)ms90_82612));
}
}
else if((/*(IRF4.6count*/(/*RF2*/(((T182*)((/*RF2*/((T178*)((/*RF2*/(C)->_arguments/*20*/)))->_flat_list/*8*/))))->_upper/*12*/)/*)*/)!=(/*(IRF4.6count*/(/*RF2*/(((T182*)((/*RF2*/((T178*)(X90arguments(a1)))->_flat_list/*8*/))))->_upper/*12*/)/*)*/)){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X90start_position(a1),&se_tmp0)));
}
{T68 se_tmp0;
r307error((*(se_tmp0=r307start_position(C),&se_tmp0)),((T0*)ms90_66660));
}
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T66*)(oBC13eh))->_error_counter/*0*/)/*)*/)==(0)){
/*[IF*/
if(((/*RF2*/(C)->_result_type/*56*/))!=((void*)(NULL))){
/*[IF*/
if(!(X52is_a_in((/*RF2*/(C)->_result_type/*56*/),X90result_type(a1),a2))){
/*[IRF3.6append*/{T0* b1=((T0*)ms90_51136);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X52run_time_mark((/*RF2*/(((T50*)a2))->_current_type/*0*/));
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms14_46);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_error((T66*)(oBC13eh));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/(/*RF2*/((T66*)(oBC13eh))->_error_counter/*0*/)/*)*/)==(0)){
/*[IF*/
if(((/*RF2*/(C)->_arguments/*20*/))!=((void*)(NULL))){
/*[IF*/
if(!(r178is_a_in((T178*)((/*RF2*/(C)->_arguments/*20*/)),X90arguments(a1),a2))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X90start_position(a1),&se_tmp0)));
}
{T68 se_tmp0;
r66add_position((*(se_tmp0=r307start_position(C),&se_tmp0)));
}
/*[IRF3.6append*/{T0* b1=((T0*)ms90_51136);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X52run_time_mark((/*RF2*/(((T50*)a2))->_current_type/*0*/));
r7append((T7*)(oBC66explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms14_46);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_error((T66*)(oBC13eh));
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
R=(/*(IRF4.9nb_errors*/(/*RF2*/((T66*)(oBC13eh))->_error_counter/*0*/)/*)*/)==(0);
/*[IF*/
if(R){
r307merge_header_comments(C,a1);
}
/*FI]*/
return R;
}
void r307merge_header_comments(T307* C,T0* a1){
/*[IF*/
if((/*RF2*/((T49*)(oBC13small_eiffel))->_short_flag/*5*/)){
/*[IF*/
if(((/*RF2*/(C)->_header_comment/*12*/))==((void*)(NULL))){
(/*SFN*/C->_header_comment)=/*SSWARF2*//*X90header_comment*/(/*RF2*/(((T198*)a1))->_header_comment/*12*/);
}
else if((/*SSWARF2*//*X90header_comment*/(/*RF2*/(((T198*)a1))->_header_comment/*12*/))==((void*)(NULL))){
X90set_header_comment(a1,(/*RF2*/(C)->_header_comment/*12*/));
}
/*FI]*/
}
/*FI]*/
}
void r307make_effective_routine(T307* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
r307make_routine(C,a1,a2,a3,a4,a5);
(/*SFN*/C->_local_vars)=a6;
(/*SFN*/C->_routine_body)=a7;
(/*SFN*/C->_use_current_state)=9;
}
T68 r307start_position(T307* C){
T68 R={NULL,0};
{T68 se_tmp0;
R=(*(se_tmp0=X82start_position(/*(IRF4.6first_name*/(/*RF2*/(((T83*)((/*RF2*/(C)->_names/*8*/))))->_first/*0*/)/*)*/),&se_tmp0));
}
return R;
}
T0* r282left_type(T282* C){
T0* R=NULL;
R=X104result_type((/*RF2*/(C)->_left_side/*4*/));
return R;
}
void r282make(T282* C,T0* a1,T0* a2){
(/*SFN*/C->_left_side)=a1;
(/*SFN*/C->_right_side)=a2;
}
void r282fatal_error(T0* a1){
/*[IRF3.6append*/{T0* b1=a1;
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_fatal_error((T66*)(oBC13eh));
}
T0* r282implicit_conversion(T282* C){
T0* R=NULL;
T0* _rhs=NULL;
T0* _right_run_type=NULL;
T0* _left_run_type=NULL;
_left_run_type=X52run_type(r282left_type(C));
_right_run_type=X52run_type(r282right_type(C));
/*[IF*/
if((X104is_void((/*RF2*/(C)->_right_side/*8*/)))&&(X52is_expanded(_left_run_type))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X104start_position((/*RF2*/(C)->_right_side/*8*/)),&se_tmp0)));
}
/*[IRF3.6append*/{T0* b1=((T0*)ms282_168036);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66add_type(r282left_type(C),((T0*)ms282_46));
r66print_as_error((T66*)(oBC13eh));
}
/*FI]*/
_rhs=r341implicit_cast((T341*)(oBC13conversion_handler),(/*RF2*/(C)->_right_side/*8*/),_left_run_type);
/*[IF*/
if((_rhs)==((void*)((/*RF2*/(C)->_right_side/*8*/)))){
R=((T0*)(C));
}
else{
{T282*n=((T282*)malloc(sizeof(*n))/*12*/);
*n=M282;
r282make(n,(/*RF2*/(C)->_left_side/*4*/),_rhs);
R=((T0*)n);
}
}
/*FI]*/
return R;
}
T0* r282add_comment(T282* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r44count(((T44*)((/*RF2*/(((T81*)a1))->_list/*8*/))))/*)*/)==(0))){
R=((T0*)(C));
}
/*AF*/else{
{T224*n=((T224*)malloc(sizeof(*n))/*12*/);
*n=M224;
r224make(n,(T0*)C,a1);
R=((T0*)n);
}
}
/*FI]*/
return R;
}
void r282compile_to_c(T282* C){
T6 _cast_t0=0;
{T68 se_tmp0;
r325se_trace_ins((T325*)(oBC13cpp),(*(se_tmp0=r282start_position(C),&se_tmp0)));
}
/*[IF*/
if(X104is_current((/*RF2*/(C)->_right_side/*8*/))){
/*[IF*/
if(X52is_reference(r282left_type(C))){
_cast_t0=X52is_reference(r282right_type(C));
}
/*FI]*/
}
/*FI]*/
X104compile_to_c((/*RF2*/(C)->_left_side/*4*/));
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\75');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IF*/
if(_cast_t0){
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms282_3738));
/*]*/
}
/*FI]*/
X104compile_to_c((/*RF2*/(C)->_right_side/*8*/));
/*[IF*/
if(_cast_t0){
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms282_164));
/*]*/
}
/*FI]*/
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms14_138));
/*]*/
}
void r282afd_check(T282* C){
X104afd_check((/*RF2*/(C)->_right_side/*8*/));
}
void r282collect_c_tmp(T282* C){
X104collect_c_tmp((/*RF2*/(C)->_right_side/*8*/));
}
T6 r282use_current(T282* C){
T6 R=0;
R=X104use_current((/*RF2*/(C)->_left_side/*4*/));
R=(R)||(X104use_current((/*RF2*/(C)->_right_side/*8*/)));
return R;
}
T6 r282stupid_switch(T282* C,T0* a1){
T6 R=0;
/*[IF*/
if(X104stupid_switch((/*RF2*/(C)->_left_side/*4*/),a1)){
/*[IF*/
if(X104stupid_switch((/*RF2*/(C)->_right_side/*8*/),a1)){
R=1;
}
/*FI]*/
}
/*FI]*/
return R;
}
T0* r282to_runnable(T282* C,T0* a1){
T0* R=NULL;
T0* _r=NULL;
T0* _l=NULL;
_l=X104to_runnable((/*RF2*/(C)->_left_side/*4*/),a1);
/*[IF*/
if((_l)==((void*)(NULL))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X104start_position((/*RF2*/(C)->_left_side/*4*/)),&se_tmp0)));
}
r282fatal_error(((T0*)ms14_63393));
}
/*FI]*/
_r=X104to_runnable((/*RF2*/(C)->_right_side/*8*/),a1);
/*[IF*/
if((_r)==((void*)(NULL))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X104start_position((/*RF2*/(C)->_right_side/*8*/)),&se_tmp0)));
}
r282fatal_error(((T0*)ms14_67082));
}
/*FI]*/
/*[IF*/
if(!(X52is_a(X104result_type(_r),X104result_type(_l)))){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X104start_position(_l),&se_tmp0)));
}
r282fatal_error(((T0*)ms282_31855));
}
/*FI]*/
/*[IF*/
if(((_l)==((void*)((/*RF2*/(C)->_left_side/*4*/))))&&((_r)==((void*)((/*RF2*/(C)->_right_side/*8*/))))){
R=r282implicit_conversion(C);
}
else{
{T282*n=((T282*)malloc(sizeof(*n))/*12*/);
*n=M282;
r282make(n,_l,_r);
R=((T0*)n);
}
R=r282implicit_conversion(((T282*)R));
}
/*FI]*/
return R;
}
T0* r282right_type(T282* C){
T0* R=NULL;
R=X104result_type((/*RF2*/(C)->_right_side/*8*/));
return R;
}
T6 r282is_pre_computable(T282* C){
T6 R=0;
T0* _rf6=NULL;
T0* _call=NULL;
/*[IF*/
if(X104is_pre_computable((/*RF2*/(C)->_right_side/*8*/))){
_call=(/*RF2*/(C)->_right_side/*8*/);
if(NULL!=(_call)){
switch(((T0*)_call)->id){
case 134:case 187:case 120:case 118:case 193:case 192:case 125:case 142:case 140:case 130:case 186:case 135:case 127:case 122:case 189:case 117:case 111:case 124:case 126:case 191:case 190:case 119:case 121:case 128:case 143:case 136:case 123:
break;
default:
_call=NULL;
}
}/*[IF*/
if((_call)!=((void*)(NULL))){
_rf6=X115run_feature(_call);
if(NULL!=(_rf6)){
switch(((T0*)_rf6)->id){
case 395:
break;
default:
_rf6=NULL;
}
}R=(_rf6)==((void*)(NULL));
}
else{
R=1;
}
/*FI]*/
}
/*FI]*/
return R;
}
T68 r282start_position(T282* C){
T68 R={NULL,0};
{T68 se_tmp0;
R=(*(se_tmp0=X104start_position((/*RF2*/(C)->_left_side/*4*/)),&se_tmp0));
}
return R;
}
T0* r159add_comment(T159* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r44count(((T44*)((/*RF2*/(((T81*)a1))->_list/*8*/))))/*)*/)==(0))){
R=((T0*)(C));
}
else{
{T229*n=((T229*)malloc(sizeof(*n))/*12*/);
*n=M229;
r229make(n,(T0*)C,a1);
R=((T0*)n);
}
}
/*FI]*/
return R;
}
T0* r159to_runnable(T159* C,T0* a1){
T0* R=NULL;
T0* _t=NULL;
R=((T0*)(C));
_t=r263to_runnable((T263*)(/*(IRF4.8result_type*/r159type_boolean()/*)*/),a1);
return R;
}
void r159error(T68 a1,T0* a2){
r66add_position(a1);
/*[IRF3.6append*/{T0* b1=a2;
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_error((T66*)(oBC13eh));
}
T0* r159type_boolean(void){
if(fBC13type_boolean==0){fBC13type_boolean=1;{
T68 _unknown_position={NULL,0};
{T263*n=((T263*)malloc(sizeof(*n))/*8*/);
*n=M263;
oBC13type_boolean=((T0*)n);
r263make(n,_unknown_position);
}
}}
return oBC13type_boolean;
}
T0* r159static_result_base_class(void){
T0* R=NULL;
R=r49get_class(((T0*)ms15_6405));
return R;
}
T2 r159isa_dca_inline_argument(void){
T2 R=0;
/*[IF*/
{/*AT*/R=-(1);
}
/*FI]*/
return R;
}
void r322make(T322* C,T0* a1){
{T323*n=((T323*)malloc(sizeof(*n))/*16*/);
*n=M323;
r323with_capacity(n,4,1);
(/*SFN*/C->_list)=((T0*)n);
}
r323add_last((T323*)((/*RF2*/(C)->_list/*0*/)),a1);
}
void r83add_last(T83* C,T0* a1){
T0* _fn2=NULL;
_fn2=r83feature_name(C,X82to_key(a1));
/*[IF*/
if((_fn2)!=((void*)(NULL))){
r83fe_multiple(_fn2,a1);
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_remainder/*4*/))==((void*)(NULL))){
{T84*n=((T84*)malloc(sizeof(*n))/*12*/);
*n=M84;
r84with_capacity(n,4);
(/*SFN*/C->_remainder)=((T0*)n);
}
}
/*FI]*/
r84add_last((T84*)((/*RF2*/(C)->_remainder/*4*/)),a1);
}
T0* r83root_procedure_name(T83* C,T0* a1){
T0* R=NULL;
T0* _fn=NULL;
T2 _i=0;
_i=r83count(C);
while (!(((_i)==(0))||((R)!=((void*)(NULL)))))
{
_fn=r83item(C,_i);
/*[IF*/
if(r7is_equal((T7*)(X82to_string(_fn)),a1)){
R=_fn;
if(NULL!=(R)){
switch(((T0*)R)->id){
case 138:
break;
default:
R=NULL;
}
}}
/*FI]*/
_i=(_i)-(1);
}
return R;
}
void r83make_n(T83* C,T0* a1){
T2 _j=0;
T2 _i=0;
_i=(/*RF2*/(((T84*)a1))->_upper/*8*/);
while (!((_i)<(0)))
{
_j=(_i)-(1);
while (!((_j)<(0)))
{
/*[IF*/
if((X82to_key(/*(IRF4.6item*/((/*RF2*/(((T84*)a1))->_storage/*0*/))[_i]/*)*/))==((void*)(X82to_key(/*(IRF4.6item*/((/*RF2*/(((T84*)a1))->_storage/*0*/))[_j]/*)*/)))){
r83fe_multiple(/*(IRF4.6item*/((/*RF2*/(((T84*)a1))->_storage/*0*/))[_i]/*)*/,/*(IRF4.6item*/((/*RF2*/(((T84*)a1))->_storage/*0*/))[_j]/*)*/);
}
/*FI]*/
_j=(_j)-(1);
}
_i=(_i)-(1);
}
(/*SFN*/C->_first)=/*(IRF4.6item*/((/*RF2*/(((T84*)a1))->_storage/*0*/))[0]/*)*/;
_i=(/*RF2*/(((T84*)a1))->_upper/*8*/);
/*[IF*/
if((_i)>(0)){
{T84*n=((T84*)malloc(sizeof(*n))/*12*/);
*n=M84;
r84make(n,_i);
(/*SFN*/C->_remainder)=((T0*)n);
}
_j=0;
while (!((_i)==(0)))
{
/*[IRF3.5put*/((/*RF2*/((T84*)((/*RF2*/(C)->_remainder/*4*/)))->_storage/*0*/))[_j]=(/*(IRF4.6item*/((/*RF2*/(((T84*)a1))->_storage/*0*/))[(_j)+(1)]/*)*/);
/*]*/
_j=(_j)+(1);
_i=(_i)-(1);
}
}
/*FI]*/
}
T0* r83feature_name(T83* C,T0* a1){
T0* R=NULL;
T2 _i=0;
/*[IF*/
if((X82to_key((/*RF2*/(C)->_first/*0*/)))==((void*)(a1))){
R=(/*RF2*/(C)->_first/*0*/);
}
else if(((/*RF2*/(C)->_remainder/*4*/))==((void*)(NULL))){
}
else{
_i=(/*RF2*/((T84*)((/*RF2*/(C)->_remainder/*4*/)))->_upper/*8*/);
while (!(((_i)<(0))||((a1)==((void*)(X82to_key(/*(IRF4.6item*/((/*RF2*/((T84*)((/*RF2*/(C)->_remainder/*4*/)))->_storage/*0*/))[_i]/*)*/))))))
{
_i=(_i)-(1);
}
/*[IF*/
if((_i)>=(0)){
R=/*(IRF4.6item*/((/*RF2*/((T84*)((/*RF2*/(C)->_remainder/*4*/)))->_storage/*0*/))[_i]/*)*/;
}
/*FI]*/
}
/*FI]*/
return R;
}
void r83fatal_error(T0* a1){
/*[IRF3.6append*/{T0* b1=a1;
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_fatal_error((T66*)(oBC13eh));
}
void r83fe_multiple(T0* a1,T0* a2){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X82start_position(a1),&se_tmp0)));
}
{T68 se_tmp0;
r66add_position((*(se_tmp0=X82start_position(a2),&se_tmp0)));
}
r83fatal_error(((T0*)ms83_60608));
}
T2 r83index_of(T83* C,T0* a1){
T2 R=0;
T0* _fn_key=NULL;
_fn_key=X82to_key(a1);
/*[IF*/
if((X82to_key((/*RF2*/(C)->_first/*0*/)))==((void*)(_fn_key))){
R=1;
}
else if(((/*RF2*/(C)->_remainder/*4*/))==((void*)(NULL))){
}
else{
R=(/*RF2*/((T84*)((/*RF2*/(C)->_remainder/*4*/)))->_upper/*8*/);
while (!(((R)<(0))||((_fn_key)==((void*)(X82to_key(/*(IRF4.6item*/((/*RF2*/((T84*)((/*RF2*/(C)->_remainder/*4*/)))->_storage/*0*/))[R]/*)*/))))))
{
R=(R)-(1);
}
/*[IF*/
if((R)<(0)){
R=0;
}
else{
R=(R)+(2);
}
/*FI]*/
}
/*FI]*/
return R;
}
T2 r83count(T83* C){
T2 R=0;
/*[IF*/
if(((/*RF2*/(C)->_remainder/*4*/))==((void*)(NULL))){
R=1;
}
else{
R=((/*RF2*/((T84*)((/*RF2*/(C)->_remainder/*4*/)))->_upper/*8*/))+(2);
}
/*FI]*/
return R;
}
T6 r83has(T83* C,T0* a1){
T6 R=0;
R=(r83index_of(C,a1))>(0);
return R;
}
T0* r83item(T83* C,T2 a1){
T0* R=NULL;
/*[IF*/
if((a1)==(1)){
R=(/*RF2*/(C)->_first/*0*/);
}
else{
R=/*(IRF4.6item*/((/*RF2*/((T84*)((/*RF2*/(C)->_remainder/*4*/)))->_storage/*0*/))[(a1)-(2)]/*)*/;
}
/*FI]*/
return R;
}
void r219make(T219* C,T68 a1,T0* a2,T0* a3){
(/*SFN*/C->_start_position)=a1;
(/*SFN*/C->_list)=a2;
(/*SFN*/C->_compound)=a3;
}
T0* r219add_comment(T219* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r44count(((T44*)((/*RF2*/(((T81*)a1))->_list/*8*/))))/*)*/)==(0))){
R=((T0*)(C));
}
else {/*AT*//*[IF*/
if((/*(IRF4.6count*/r44count(((T44*)((/*RF2*/(((T81*)a1))->_list/*8*/))))/*)*/)==(1)){
R=((T0*)(C));
}
else{
{T224*n=((T224*)malloc(sizeof(*n))/*12*/);
*n=M224;
r224make(n,(T0*)C,a1);
R=((T0*)n);
}
}
/*FI]*/
}
/*FI]*/
return R;
}
void r219compile_to_c(T219* C){
/*[IF*/
if(r47debug_check((T47*)(oBC13run_control))){
/*[IF*/
if(((/*RF2*/(C)->_compound/*16*/))!=((void*)(NULL))){
r215compile_to_c((T215*)((/*RF2*/(C)->_compound/*16*/)));
}
/*FI]*/
}
/*FI]*/
}
void r219afd_check(T219* C){
/*[IF*/
if(r47debug_check((T47*)(oBC13run_control))){
/*[IF*/
if(((/*RF2*/(C)->_compound/*16*/))!=((void*)(NULL))){
r215afd_check((T215*)((/*RF2*/(C)->_compound/*16*/)));
}
/*FI]*/
}
/*FI]*/
}
T6 r219use_current(T219* C){
T6 R=0;
/*[IF*/
if(r47debug_check((T47*)(oBC13run_control))){
/*[IF*/
if(((/*RF2*/(C)->_compound/*16*/))!=((void*)(NULL))){
R=r215use_current((T215*)((/*RF2*/(C)->_compound/*16*/)));
}
/*FI]*/
}
/*FI]*/
return R;
}
T0* r219to_runnable(T219* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((/*RF2*/(C)->_current_type/*20*/))==((void*)(NULL))){
(/*SFN*/C->_current_type)=a1;
/*[IF*/
if(r47debug_check((T47*)(oBC13run_control))){
/*[IF*/
if(((/*RF2*/(C)->_compound/*16*/))!=((void*)(NULL))){
(/*SFN*/C->_compound)=r215to_runnable((T215*)((/*RF2*/(C)->_compound/*16*/)),a1);
}
/*FI]*/
}
/*FI]*/
R=((T0*)(C));
}
else{
{T219*n=((T219*)malloc(sizeof(*n))/*24*/);
*n=M219;
r219make(n,(/*RF2*/(C)->_start_position/*4*/),(/*RF2*/(C)->_list/*12*/),(/*RF2*/(C)->_compound/*16*/));
R=((T0*)n);
}
R=r219to_runnable(((T219*)R),a1);
}
/*FI]*/
return R;
}
void r194add_last(T194* C,T0* a1){
T2 _i=0;
_i=r194index_of(C,a1);
/*[IF*/
if((_i)>(0)){
r66add_position((/*RF2*/((T61*)(r194item(C,_i)))->_start_position/*0*/));
r194warning((/*RF2*/(((T61*)a1))->_start_position/*0*/),((T0*)ms194_54060));
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_remainder/*4*/))==((void*)(NULL))){
{T195*n=((T195*)malloc(sizeof(*n))/*12*/);
*n=M195;
r195with_capacity(n,4);
(/*SFN*/C->_remainder)=((T0*)n);
}
}
/*FI]*/
r195add_last((T195*)((/*RF2*/(C)->_remainder/*4*/)),a1);
}
void r194warning(T68 a1,T0* a2){
r66add_position(a1);
/*[IRF3.6append*/{T0* b1=a2;
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_warning((T66*)(oBC13eh));
}
void r194merge(T194* C,T0* a1,T0* a2){
T0* _cn=NULL;
T2 _i=0;
(/*SFN*/C->_first)=r194item(((T194*)a1),1);
{T195*n=((T195*)malloc(sizeof(*n))/*12*/);
*n=M195;
r195with_capacity(n,((r194count(((T194*)a1)))+(r194count(((T194*)a2))))-(1));
(/*SFN*/C->_remainder)=((T0*)n);
}
_i=r194count(((T194*)a1));
while (!((_i)==(1)))
{
r195add_last((T195*)((/*RF2*/(C)->_remainder/*4*/)),r194item(((T194*)a1),_i));
_i=(_i)-(1);
}
_i=r194count(((T194*)a2));
while (!((_i)==(0)))
{
_cn=r194item(((T194*)a2),_i);
/*[IF*/
if((r194index_of(C,_cn))==(0)){
r195add_last((T195*)((/*RF2*/(C)->_remainder/*4*/)),_cn);
}
/*FI]*/
_i=(_i)-(1);
}
}
T6 r194gives_permission_to_any(T194* C){
T6 R=0;
T0* _cn=NULL;
T2 _i=0;
_i=r194count(C);
while (!((R)||((_i)==(0))))
{
_cn=r194item(C,_i);
R=((/*RF2*/(((T61*)_cn))->_to_string/*8*/))==((void*)(((T0*)ms15_696)));
_i=(_i)-(1);
}
return R;
}
T2 r194index_of(T194* C,T0* a1){
T2 R=0;
T0* _to_string=NULL;
_to_string=(/*RF2*/(((T61*)a1))->_to_string/*8*/);
R=r194count(C);
while (!(((R)==(0))||((_to_string)==((void*)((/*RF2*/((T61*)(r194item(C,R)))->_to_string/*8*/))))))
{
R=(R)-(1);
}
return R;
}
T6 r194gives_permission_to(T194* C,T0* a1){
T6 R=0;
T2 _i=0;
/*[IF*/
if((r194index_of(C,a1))>(0)){
R=1;
}
else{
_i=r194count(C);
while (!((R)||((_i)==(0))))
{
R=r61is_subclass_of(((T61*)a1),r194item(C,_i));
_i=(_i)-(1);
}
}
/*FI]*/
return R;
}
T2 r194count(T194* C){
T2 R=0;
/*[IF*/
if(((/*RF2*/(C)->_remainder/*4*/))==((void*)(NULL))){
R=1;
}
else{
R=(2)+((/*RF2*/((T195*)((/*RF2*/(C)->_remainder/*4*/)))->_upper/*8*/));
}
/*FI]*/
return R;
}
T0* r194item(T194* C,T2 a1){
T0* R=NULL;
/*[IF*/
if((a1)==(1)){
R=(/*RF2*/(C)->_first/*0*/);
}
else{
R=/*(IRF4.6item*/((/*RF2*/((T195*)((/*RF2*/(C)->_remainder/*4*/)))->_storage/*0*/))[(a1)-(2)]/*)*/;
}
/*FI]*/
return R;
}
T6 r102is_always_true(T102* C){
T6 R=0;
T0* _assertion=NULL;
T2 _i=0;
_i=(/*RF2*/((T101*)((/*RF2*/(C)->_list/*12*/)))->_upper/*8*/);
R=1;
while (!((!(R))||((_i)==(0))))
{
_assertion=r101item((T101*)((/*RF2*/(C)->_list/*12*/)),_i);
R=r100is_always_true(((T100*)_assertion));
_i=(_i)-(1);
}
return R;
}
T0* r102check_assertion_mode(void){
T0* R=NULL;
R=((T0*)ms102_999);
return R;
}
void r102make(T102* C,T68 a1,T0* a2,T0* a3){
(/*SFN*/C->_start_position)=a1;
(/*SFN*/C->_header_comment)=a2;
(/*SFN*/C->_list)=a3;
}
T0*oBC102c_code=NULL;
void r102add_into(T102* C,T0* a1){
T0* _a=NULL;
T2 _i=0;
/*[IF*/
if(((/*RF2*/(C)->_list/*12*/))!=((void*)(NULL))){
_i=1;
while (!((_i)>((/*RF2*/((T101*)((/*RF2*/(C)->_list/*12*/)))->_upper/*8*/))))
{
_a=r101item((T101*)((/*RF2*/(C)->_list/*12*/)),_i);
/*[IF*/
if(!(r101fast_has(((T101*)a1),_a))){
r101add_last(((T101*)a1),_a);
}
/*FI]*/
_i=(_i)+(1);
}
}
/*FI]*/
}
void r102afd_check(T102* C){
T2 _i=0;
/*[IF*/
if(((/*RF2*/(C)->_list/*12*/))!=((void*)(NULL))){
_i=(/*RF2*/((T101*)((/*RF2*/(C)->_list/*12*/)))->_upper/*8*/);
while (!((_i)==(0)))
{
r100afd_check((T100*)(r101item((T101*)((/*RF2*/(C)->_list/*12*/)),_i)));
_i=(_i)-(1);
}
}
/*FI]*/
}
void r102compile_to_c(T102* C){
T0* _assertion=NULL;
T6 _need_se_tmp=0;
T2 _i=0;
/*[IF*/
if(r102is_always_true(C)){
r325increment_static_expression_count((T325*)(oBC13cpp),r101count((T101*)((/*RF2*/(C)->_list/*12*/))));
}
else{
/*[IF*/
if(((/*RF2*/(C)->_run_feature/*20*/))==((void*)(NULL))){
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms103_51064));
/*]*/
}
else{
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms103_741));
/*]*/
/*SSPRF3*//*X334c_assertion_flag*/r368c_assertion_flag((T368*)((/*RF2*/(C)->_run_feature/*20*/)));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms103_522));
/*]*/
/*SSPRF3*//*X334c_assertion_flag*/r368c_assertion_flag((T368*)((/*RF2*/(C)->_run_feature/*20*/)));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms103_712));
/*]*/
}
/*FI]*/
_i=1;
while (!((_i)>((/*RF2*/((T101*)((/*RF2*/(C)->_list/*12*/)))->_upper/*8*/))))
{
_assertion=r101item((T101*)((/*RF2*/(C)->_list/*12*/)),_i);
/*[IF*/
if(r100is_always_true(((T100*)_assertion))){
}
else{
r100collect_c_tmp(((T100*)_assertion));
_need_se_tmp=r325se_tmp_open_declaration((T325*)(oBC13cpp));
/*[IRF3.3set_check_assertion_mode*/((((T325*)((T325*)(oBC13cpp))))->_check_assertion_mode)=(r102check_assertion_mode());
/*]*/
r100compile_to_c(((T100*)_assertion));
/*[IF*/
if(_need_se_tmp){
r325se_tmp_close_declaration((T325*)(oBC13cpp));
}
/*FI]*/
}
/*FI]*/
_i=(_i)+(1);
}
/*[IF*/
if(((/*RF2*/(C)->_run_feature/*20*/))==((void*)(NULL))){
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms103_19791));
/*]*/
}
else{
/*SSPRF3*//*X334c_assertion_flag*/r368c_assertion_flag((T368*)((/*RF2*/(C)->_run_feature/*20*/)));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms103_2184));
/*]*/
}
/*FI]*/
}
/*FI]*/
}
void r102make_runnable(T102* C,T68 a1,T0* a2,T0* a3,T0* a4){
(/*SFN*/C->_start_position)=a1;
(/*SFN*/C->_list)=a2;
(/*SFN*/C->_current_type)=a3;
(/*SFN*/C->_run_feature)=a4;
}
void r102c_define(T102* C){
T2 _id=0;
_id=X52id((/*RF2*/(C)->_current_type/*16*/));
r7copy((T7*)(oBC102c_code),((T0*)ms102_81302));
r2append_in(_id,oBC102c_code);
r325put_extern7((T325*)(oBC13cpp),oBC102c_code);
r7copy((T7*)(oBC102c_code),((T0*)ms102_23121));
r7append((T7*)(oBC102c_code),X52run_time_mark((/*RF2*/(C)->_current_type/*16*/)));
r7append((T7*)(oBC102c_code),((T0*)ms102_3199));
/*[IRF3.3clear*/((((T7*)((T7*)(oBC13c_frame_descriptor_format))))->_count)=(0);
/*]*/
X52c_frame_descriptor((/*RF2*/(C)->_current_type/*16*/));
r7append((T7*)(oBC102c_code),oBC13c_frame_descriptor_format);
r7append((T7*)(oBC102c_code),((T0*)ms102_2226));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),oBC102c_code);
/*]*/
/*[IRF3.3clear*/((((T7*)((T7*)(oBC102c_code))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC102c_code),((T3)'T'));
r2append_in(_id,oBC102c_code);
r7extend((T7*)(oBC102c_code),((T3)'\52'));
r7append((T7*)(oBC102c_code),((T0*)ms14_1664));
r2append_in(_id,oBC102c_code);
r7append((T7*)(oBC102c_code),((T0*)ms102_54809));
r2append_in(_id,oBC102c_code);
r7append((T7*)(oBC102c_code),((T0*)ms102_450));
r325put_c_heading((T325*)(oBC13cpp),oBC102c_code);
/*[IRF3.3swap_on_c*/((((T325*)((T325*)(oBC13cpp))))->_current_out)=(oBC325out_c);
/*]*/
r7copy((T7*)(oBC102c_code),((T0*)ms102_112468));
r2append_in(_id,oBC102c_code);
r7append((T7*)(oBC102c_code),((T0*)ms102_16200));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),oBC102c_code);
/*]*/
r325put_position_in_ds((/*RF2*/(C)->_start_position/*0*/));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms102_22710));
/*]*/
r102compile_to_c(C);
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms102_21492));
/*]*/
}
void r296c_mapping_procedure(T0* a1,T0* a2,T0* a3){
/*[IF*/
if(r47boost((T47*)(oBC13run_control))){
r296c_mapping_external((/*RF2*/(((T337*)a1))->_base_feature/*24*/),r337arg_count(((T337*)a1)));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms14_138));
/*]*/
}
else{
r337default_mapping_procedure(((T337*)a1));
}
/*FI]*/
}
void r296c_mapping_function(T0* a1,T0* a2,T0* a3){
/*[IF*/
if(r47boost((T47*)(oBC13run_control))){
r296c_mapping_external((/*RF2*/(((T333*)a1))->_base_feature/*24*/),r333arg_count(((T333*)a1)));
}
else{
r333default_mapping_function(((T333*)a1));
}
/*FI]*/
}
void r296standard_c_define_procedure(T0* a1,T0* a2,T0* a3){
/*[IF*/
{/*AT*//*[IRF3.6c_prototype*/{T337* C1=((T337*)a1);
r337external_prototype(C1,(/*RF2*/(C1)->_base_feature/*24*/));
}/*]*/
}
/*FI]*/
/*[IF*/
if(r47no_check((T47*)(oBC13run_control))){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC288body))))->_count)=(0);
/*]*/
r296wrapped_external_call((/*RF2*/(((T337*)a1))->_base_feature/*24*/),r337arg_count(((T337*)a1)));
r337c_define_with_body(((T337*)a1),oBC288body);
}
/*FI]*/
}
void r296standard_c_define_function(T0* a1,T0* a2,T0* a3){
/*[IF*/
{/*AT*//*[IRF3.6c_prototype*/{T333* C1=((T333*)a1);
r333external_prototype(C1,(/*RF2*/(C1)->_base_feature/*24*/));
}/*]*/
}
/*FI]*/
/*[IF*/
if(r47no_check((T47*)(oBC13run_control))){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC288body))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC288body),((T3)'R'));
r7extend((T7*)(oBC288body),((T3)'\75'));
r296wrapped_external_call((/*RF2*/(((T333*)a1))->_base_feature/*24*/),r333arg_count(((T333*)a1)));
r333c_define_with_body(((T333*)a1),oBC288body);
}
/*FI]*/
}
void r296wrapped_external_call(T0* a1,T2 a2){
T2 _i=0;
r7append((T7*)(oBC288body),/*SSFRF4*//*X289external_c_name*/r291external_c_name(((T291*)a1)));
r7extend((T7*)(oBC288body),((T3)'\50'));
/*[IF*/
/*AF*//*AE*/
/*FI]*/
_i=1;
while (!((_i)>(a2)))
{
r7extend((T7*)(oBC288body),((T3)'a'));
r2append_in(_i,oBC288body);
_i=(_i)+(1);
/*[IF*/
if((_i)<=(a2)){
r7extend((T7*)(oBC288body),((T3)'\54'));
}
/*FI]*/
}
r7append((T7*)(oBC288body),((T0*)ms14_330));
}
void r296c_mapping_external(T0* a1,T2 a2){
T6 _tcbd=0;
T6 _eruc=0;
_eruc=/*(IRF4.1use_current*/0/*)*/;
/*[IF*/
if(!(_eruc)){
_tcbd=r325target_cannot_be_dropped((T325*)(oBC13cpp));
/*[IF*/
if(_tcbd){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\54');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
}
/*FI]*/
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),/*SSFRF4*//*X289external_c_name*/r291external_c_name(((T291*)a1)));
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IF*/
if(_eruc){
r325put_target_as_value((T325*)(oBC13cpp));
}
/*FI]*/
/*[IF*/
if((a2)>(0)){
/*[IF*/
if(_eruc){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\54');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
r325put_arguments((T325*)(oBC13cpp));
}
/*FI]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IF*/
if((!(_eruc))&&(_tcbd)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
}
T0* r164add_comment(T164* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r44count(((T44*)((/*RF2*/(((T81*)a1))->_list/*8*/))))/*)*/)==(0))){
R=((T0*)(C));
}
else{
{T229*n=((T229*)malloc(sizeof(*n))/*12*/);
*n=M229;
r229make(n,(T0*)C,a1);
R=((T0*)n);
}
}
/*FI]*/
return R;
}
T0* r164to_runnable(T164* C,T0* a1){
T0* R=NULL;
T0* _t=NULL;
R=((T0*)(C));
_t=r270to_runnable((T270*)(r164result_type()),a1);
return R;
}
T2 r164to_integer(T164* C){
T2 R=0;
r164error((/*RF2*/(C)->_start_position/*4*/),((T0*)ms14_45441));
return R;
}
void r164error(T68 a1,T0* a2){
r66add_position(a1);
/*[IRF3.6append*/{T0* b1=a2;
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_error((T66*)(oBC13eh));
}
T0*oBC164result_type=NULL;
int fBC164result_type=0;
T0* r164result_type(void){
if(fBC164result_type==0){fBC164result_type=1;{
T68 _unknown_position={NULL,0};
{T270*n=((T270*)malloc(sizeof(*n))/*8*/);
*n=M270;
oBC164result_type=((T0*)n);
r270make(n,_unknown_position);
}
}}
return oBC164result_type;
}
T0* r164static_result_base_class(void){
T0* R=NULL;
R=r49get_class(((T0*)ms15_1168));
return R;
}
void r164make(T164* C,T68 a1,T0* a2){
(/*SFN*/C->_start_position)=a1;
(/*SFN*/C->_to_string)=a2;
}
T2 r164isa_dca_inline_argument(void){
T2 R=0;
/*[IF*/
/*AF*//*AE*/
/*FI]*/
return R;
}
void r271standard_c_object_model(T271* C){
T0* _rc=NULL;
T2 _mem_id=0;
_rc=r271run_class(C);
_mem_id=(/*RF2*/(((T50*)_rc))->_id/*4*/);
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms52_783104)))))->_count)=(0);
/*]*/
r7extend((T7*)(((T0*)ms52_783104)),((T3)'T'));
r2append_in(_mem_id,((T0*)ms52_783104));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'\40'));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'M'));
r2append_in(_mem_id,((T0*)ms52_783104));
r325put_extern7((T325*)(oBC13cpp),((T0*)ms52_783104));
/*[IRF3.3swap_on_c*/((((T325*)((T325*)(oBC13cpp))))->_current_out)=(oBC325out_c);
/*]*/
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms52_783104)))))->_count)=(0);
/*]*/
r50c_object_model_in(((T50*)_rc),((T0*)ms52_783104));
r7append((T7*)(((T0*)ms52_783104)),((T0*)ms14_138));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms52_783104));
/*]*/
r325swap_on_h((T325*)(oBC13cpp));
}
void r271gc_free_in(T0* a1){
r7append(((T7*)a1),((T0*)ms52_8540));
r2append_in(7,a1);
}
void r271standard_gc_info_in(T0* a1){
r7append(((T7*)a1),((T0*)ms52_22591a));
r7append(((T7*)a1),r271run_time_mark());
r7append(((T7*)a1),((T0*)ms14_5895));
r271gc_info_nb_in(a1);
r7append(((T7*)a1),((T0*)ms14_330));
r7append(((T7*)a1),((T0*)ms52_22591));
r271gc_store_left_in(a1);
r7append(((T7*)a1),((T0*)ms14_5895));
r271gc_store_left_in(a1);
r7append(((T7*)a1),((T0*)ms14_330));
}
T0* r271generic_list(T271* C){
T0* R=NULL;
r271fatal_error_generic_list(C);
return R;
}
T0* r271type_string(void){
if(fBC13type_string==0){fBC13type_string=1;{
T68 _unknown_position={NULL,0};
{T271*n=((T271*)malloc(sizeof(*n))/*8*/);
*n=M271;
oBC13type_string=((T0*)n);
r271make(n,_unknown_position);
}
}}
return oBC13type_string;
}
void r271cast_to_ref(T271* C){
X52cast_to_ref(/*(IRF4.4run_type*/((T0*)(C))/*)*/);
}
void r271gc_call_new_in(T0* a1){
r7append(((T7*)a1),((T0*)ms14_990));
r2append_in(7,a1);
r7extend(((T7*)a1),((T3)'\50'));
r7extend(((T7*)a1),((T3)'\51'));
}
void r271standard_c_struct(T271* C){
T0* _t=NULL;
T0* _a=NULL;
T2 _mem_id=0;
T2 _i=0;
T0* _wa=NULL;
_mem_id=7;
_wa=r50writable_attributes((T50*)(r271run_class(C)));
r7copy((T7*)(((T0*)ms52_783104)),((T0*)ms14_5495));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'S'));
r2append_in(_mem_id,((T0*)ms52_783104));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'\173'));
/*[IF*/
{/*AT*//*[IF*/
if(r50is_tagged((T50*)(r271run_class(C)))){
r7append((T7*)(((T0*)ms52_783104)),((T0*)ms52_5873));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((_wa)!=((void*)(NULL))){
_i=(/*RF2*/(((T346*)_wa))->_upper/*12*/);
while (!((_i)==(0)))
{
_a=r346item(((T346*)_wa),_i);
_t=X52run_type((/*RF2*/(((T345*)_a))->_result_type/*28*/));
X52c_type_for_result_in(_t,((T0*)ms52_783104));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'\40'));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'\137'));
r7append((T7*)(((T0*)ms52_783104)),X82to_string((/*RF2*/(((T345*)_a))->_name/*12*/)));
r7extend((T7*)(((T0*)ms52_783104)),((T3)'\73'));
_i=(_i)-(1);
}
}
/*FI]*/
r7extend((T7*)(((T0*)ms52_783104)),((T3)'\175'));
r7append((T7*)(((T0*)ms52_783104)),((T0*)ms14_138));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms52_783104));
/*]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
T0* r271base_class(T271* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=(/*RF2*/(C)->_base_class_name/*4*/);
/*[IF*/
if((_bcn)!=((void*)(NULL))){
R=r61base_class(((T61*)_bcn));
}
else{
/*[IRF3.6append*/{T0* b1=((T0*)ms52_36693);
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66add_type((T0*)C,((T0*)ms14_46));
r66print_as_fatal_error((T66*)(oBC13eh));
}
/*FI]*/
return R;
}
void r271gc_store_chunk_in(T0* a1){
r7append(((T7*)a1),((T0*)ms52_19074));
r2append_in(7,a1);
}
T0* r271look_up_for(T271* C,T0* a1,T0* a2){
T0* R=NULL;
R=r51look_up_for((T51*)(r271base_class(C)),a1,a2);
return R;
}
T6 r271has_creation(T271* C,T0* a1){
T6 R=0;
R=r51has_creation((T51*)(r271base_class(C)),a1);
return R;
}
void r271gc_align_mark_in(T0* a1){
r7append(((T7*)a1),((T0*)ms52_24609));
r2append_in(7,a1);
}
T6 r271is_a_in(T271* C,T0* a1,T0* a2){
T6 R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*[IF*/
if((r271written_mark())==((void*)(X52written_mark(a1)))){
R=1;
}
else{
_ct=(/*RF2*/(((T50*)a2))->_current_type/*0*/);
_t1=/*(IRF4.4to_runnable*/((T0*)(C))/*)*/;
_t2=X52to_runnable(a1,_ct);
/*[IF*/
if((X52run_time_mark(_t1))==((void*)(X52run_time_mark(_t2)))){
R=1;
}
else{
R=X52is_a(_t1,_t2);
}
/*FI]*/
}
/*FI]*/
return R;
}
T6 r271is_native_array(T271* C){
T6 R=0;
T0* _tna=NULL;
_tna=NULL;
R=(_tna)!=((void*)(NULL));
return R;
}
T6 r271is_a(T271* C,T0* a1){
T6 R=0;
/*[IF*/
if(X52is_string(a1)){
R=1;
}
else{
R=r51is_subclass_of((T51*)(r271base_class(C)),X52base_class(a1));
}
/*FI]*/
/*[IF*/
if(!(R)){
r66add_type((T0*)C,((T0*)ms14_17460));
r66add_type(a1,((T0*)ms14_46));
}
/*FI]*/
return R;
}
void r271make(T271* C,T68 a1){
{T61*n=((T61*)malloc(sizeof(*n))/*12*/);
*n=M61;
r61make(n,((T0*)ms15_4956),a1);
(/*SFN*/C->_base_class_name)=((T0*)n);
}
}
void r271gc_store_left_in(T0* a1){
r7append(((T7*)a1),((T0*)ms52_17170));
r2append_in(7,a1);
}
T2 r271c_sizeof_pointer(void){
T2 R=0;
T8 _p=NULL;
R=sizeof(T8);
return R;
}
void r271fatal_error_generic_list(T271* C){
r66add_type((T0*)C,((T0*)ms52_28899));
r66print_as_fatal_error((T66*)(oBC13eh));
}
T0* r271type_any(void){
if(fBC13type_any==0){fBC13type_any=1;{
T68 _unknown_position={NULL,0};
{T259*n=((T259*)malloc(sizeof(*n))/*8*/);
*n=M259;
oBC13type_any=((T0*)n);
r259make(n,_unknown_position);
}
}}
return oBC13type_any;
}
T0* r271smallest_ancestor(T271* C,T0* a1){
T0* R=NULL;
T0* _bc2=NULL;
T0* _bc=NULL;
T0* _rto=NULL;
_rto=X52run_type(a1);
/*[IF*/
if(X52is_string(_rto)){
R=((T0*)(C));
}
else if(X52is_none(_rto)){
R=((T0*)(C));
}
else if(X52is_any(_rto)){
R=_rto;
}
else if(X52is_expanded(_rto)){
R=X52smallest_ancestor(_rto,(T0*)C);
}
else{
_bc=r271base_class(C);
_bc2=X52base_class(_rto);
/*[IF*/
if(r51is_subclass_of(((T51*)_bc2),_bc)){
R=((T0*)(C));
}
else if(r51is_subclass_of(((T51*)_bc),_bc2)){
R=_rto;
}
else{
R=r271type_any();
}
/*FI]*/
}
/*FI]*/
return R;
}
void r271standard_gc_define2(T271* C){
T6 _gc_check_id=0;
T2 _rcid=0;
T0* _rc=NULL;
_rc=r271run_class(C);
_rcid=(/*RF2*/(((T50*)_rc))->_id/*4*/);
r7copy((T7*)(((T0*)ms52_783104a)),((T0*)ms14_1736a));
r7extend((T7*)(((T0*)ms52_783104a)),((T3)'\40'));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms14_11416));
r2append_in(_rcid,((T0*)ms52_783104a));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms52_6360));
r7copy((T7*)(((T0*)ms52_3073536)),((T0*)ms52_404));
r2append_in(_rcid,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_69075));
r2append_in(_rcid,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_361836));
r271gc_store_in(((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_94205));
r344memory_dispose(((T0*)ms52_3073536),((T0*)ms52_320),r271run_class(C));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_21552));
r271gc_free_in(((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms14_138));
r271gc_free_in(((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_407960));
r344memory_dispose(((T0*)ms52_3073536),((T0*)ms52_322),r271run_class(C));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_1591218));
r271gc_free_in(((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms14_138));
r271gc_free_in(((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_14102));
r325put_c_function((T325*)(oBC13cpp),((T0*)ms52_783104a),((T0*)ms52_3073536));
r7copy((T7*)(((T0*)ms52_783104a)),((T0*)ms14_1736a));
r7extend((T7*)(((T0*)ms52_783104a)),((T3)'\40'));
r271gc_mark_in(((T0*)ms52_783104a));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms52_248a));
r2append_in(_rcid,((T0*)ms52_783104a));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms52_582));
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms52_3073536)))))->_count)=(0);
/*]*/
_gc_check_id=(r50is_tagged(((T50*)_rc)))&&(r47no_check((T47*)(oBC13run_control)));
/*[IF*/
if(_gc_check_id){
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_21437));
r2append_in(_rcid,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_932));
}
/*FI]*/
r50gc_mark_fixed_size(((T50*)_rc),0,((T0*)ms52_3073536));
/*[IF*/
if(_gc_check_id){
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_270));
}
/*FI]*/
r325put_c_function((T325*)(oBC13cpp),((T0*)ms52_783104a),((T0*)ms52_3073536));
r7copy((T7*)(((T0*)ms52_783104a)),((T0*)ms14_1736a));
r7extend((T7*)(((T0*)ms52_783104a)),((T3)'\40'));
r271gc_align_mark_in(((T0*)ms52_783104a));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms52_14570));
r2append_in(_rcid,((T0*)ms52_783104a));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms52_585));
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms52_3073536)))))->_count)=(0);
/*]*/
r50gc_align_mark_fixed_size(((T50*)_rc),((T0*)ms52_3073536));
r325put_c_function((T325*)(oBC13cpp),((T0*)ms52_783104a),((T0*)ms52_3073536));
r7copy((T7*)(((T0*)ms52_783104a)),((T0*)ms52_5346));
r2append_in(_rcid,((T0*)ms52_783104a));
r7copy((T7*)(((T0*)ms52_3073536)),((T0*)ms52_454797));
r2append_in(_rcid,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_78075));
r2append_in(_rcid,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_356700));
r2append_in(_rcid,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_5802));
r325put_extern5((T325*)(oBC13cpp),((T0*)ms52_783104a),((T0*)ms52_3073536));
/*[IRF3.3clear*/((((T7*)((T7*)(((T0*)ms52_783104a)))))->_count)=(0);
/*]*/
r7extend((T7*)(((T0*)ms52_783104a)),((T3)'T'));
r2append_in(_rcid,((T0*)ms52_783104a));
r7extend((T7*)(((T0*)ms52_783104a)),((T3)'\52'));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms14_990));
r2append_in(_rcid,((T0*)ms52_783104a));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms14_4320));
r7copy((T7*)(((T0*)ms52_3073536)),((T0*)ms14_404));
r2append_in(_rcid,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_884));
/*[IF*/
if((/*RF2*/((T344*)(oBC13gc_handler))->_info_flag/*1*/)){
r271gc_info_nb_in(((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_620));
}
/*FI]*/
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_741));
r271gc_store_left_in(((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_1425));
r271gc_store_left_in(((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_3810));
r271gc_store_in(((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_13200));
r271gc_free_in(((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_11044));
r271gc_free_in(((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms14_138));
r271gc_free_in(((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_39474));
r271gc_store_left_in(((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_2370));
r271gc_store_left_in(((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_712));
r271gc_store_chunk_in(((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_103626));
r271gc_store_in(((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_11760));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_11024));
r271gc_store_chunk_in(((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_23640));
r271gc_initialize_chunk(_rcid,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_31806));
r271gc_store_chunk_in(((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_1694883));
r271gc_store_chunk_in(((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_51520));
r271gc_store_chunk_in(((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_816));
r271gc_initialize_chunk(_rcid,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_59265));
r271gc_free_in(((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_1725));
r271gc_free_in(((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms14_138));
r271gc_free_in(((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_15800));
r271gc_store_chunk_in(((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_8008));
r271gc_initialize_chunk(_rcid,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_21504));
/*[IF*/
{/*AT*/r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_14003));
r2append_in(_rcid,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms14_138));
}
/*FI]*/
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_11862));
r2append_in(_rcid,((T0*)ms52_3073536));
r7append((T7*)(((T0*)ms52_3073536)),((T0*)ms52_2118));
r325put_c_function((T325*)(oBC13cpp),((T0*)ms52_783104a),((T0*)ms52_3073536));
}
void r271c_header_pass4(T271* C){
r271standard_c_struct(C);
r271standard_c_object_model(C);
}
int fBC271set_at_run_time=0;
void r271set_at_run_time(void){
if(fBC271set_at_run_time==0){fBC271set_at_run_time=1;{
T0* _rf=NULL;
T0* _rc=NULL;
T0* _bc=NULL;
_bc=r271base_class((T271*)(r271type_string()));
_rc=r271run_class((T271*)(r271type_string()));
r50set_at_run_time(((T50*)_rc));
_rf=r50get_feature_with(((T50*)_rc),((T0*)ms15_11776));
_rf=r50get_feature_with(((T50*)_rc),((T0*)ms15_2765a));
_rf=r50get_feature_with(((T50*)_rc),((T0*)ms15_8820));
r50set_at_run_time((T50*)(X52run_class(X334result_type(_rf))));
}}}
void r271standard_gc_define1(T271* C){
T2 _rcid=0;
T0* _rc=NULL;
_rc=r271run_class(C);
_rcid=(/*RF2*/(((T50*)_rc))->_id/*4*/);
r7copy((T7*)(((T0*)ms52_783104a)),((T0*)ms14_6448));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms14_5495));
r7extend((T7*)(((T0*)ms52_783104a)),((T3)'B'));
r2append_in(_rcid,((T0*)ms52_783104a));
r7extend((T7*)(((T0*)ms52_783104a)),((T3)'\40'));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms14_404));
r2append_in(_rcid,((T0*)ms52_783104a));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms14_138));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms14_5495));
r7extend((T7*)(((T0*)ms52_783104a)),((T3)'B'));
r2append_in(_rcid,((T0*)ms52_783104a));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms52_414));
r2append_in(_rcid,((T0*)ms52_783104a));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms52_78572));
r2append_in(_rcid,((T0*)ms52_783104a));
r7append((T7*)(((T0*)ms52_783104a)),((T0*)ms52_12042));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms52_783104a));
/*]*/
r7copy((T7*)(((T0*)ms52_783104a)),((T0*)ms14_404));
r2append_in(_rcid,((T0*)ms52_783104a));
r7extend((T7*)(((T0*)ms52_783104a)),((T3)'\52'));
r271gc_store_in(((T0*)ms52_783104a));
r325put_extern5((T325*)(oBC13cpp),((T0*)ms52_783104a),((T0*)ms14_1260));
r7copy((T7*)(((T0*)ms52_783104a)),((T0*)ms14_993));
r7extend((T7*)(((T0*)ms52_783104a)),((T3)'\40'));
r271gc_store_left_in(((T0*)ms52_783104a));
r325put_extern2((T325*)(oBC13cpp),((T0*)ms52_783104a),((T3)'0'));
r7copy((T7*)(((T0*)ms52_783104a)),((T0*)ms52_2345));
r271gc_store_chunk_in(((T0*)ms52_783104a));
r325put_extern5((T325*)(oBC13cpp),((T0*)ms52_783104a),((T0*)ms14_1260));
r7copy((T7*)(((T0*)ms52_783104a)),((T0*)ms14_404));
r2append_in(_rcid,((T0*)ms52_783104a));
r7extend((T7*)(((T0*)ms52_783104a)),((T3)'\52'));
r271gc_free_in(((T0*)ms52_783104a));
r325put_extern5((T325*)(oBC13cpp),((T0*)ms52_783104a),((T0*)ms14_1260));
/*[IF*/
if((/*RF2*/((T344*)(oBC13gc_handler))->_info_flag/*1*/)){
r7copy((T7*)(((T0*)ms52_783104a)),((T0*)ms14_993));
r7extend((T7*)(((T0*)ms52_783104a)),((T3)'\40'));
r271gc_info_nb_in(((T0*)ms52_783104a));
r325put_extern2((T325*)(oBC13cpp),((T0*)ms52_783104a),((T3)'0'));
}
/*FI]*/
}
void r271id_extra_information(T0* a1){
r48put_string(((T48*)a1),((T0*)ms52_9724));
/*[IF*/
{/*AT*/r48put_string(((T48*)a1),((T0*)ms52_1476));
}
/*FI]*/
}
void r271standard_just_before_gc_mark_in(T0* a1){
r271gc_free_in(a1);
r7extend(((T7*)a1),((T3)'\75'));
r7append(((T7*)a1),((T0*)ms14_1260));
r7append(((T7*)a1),((T0*)ms14_138));
}
void r271gc_mark_in(T0* a1){
r7append(((T7*)a1),((T0*)ms14_8764));
r2append_in(7,a1);
}
void r271gc_info_nb_in(T0* a1){
r7append(((T7*)a1),((T0*)ms52_14920));
r2append_in(7,a1);
}
void r271c_type_for_external_in(T0* a1){
/*[IF*/
{/*AT*/r7append(((T7*)a1),((T0*)ms14_1736a));
r7extend(((T7*)a1),((T3)'\52'));
}
/*FI]*/
}
T0* r271run_time_mark(void){
T0* R=NULL;
R=((T0*)ms15_4956);
return R;
}
void r271gc_store_in(T0* a1){
r7append(((T7*)a1),((T0*)ms52_2785));
r2append_in(7,a1);
}
T0* r271run_class(T271* C){
T0* R=NULL;
R=r49run_class((T0*)C);
return R;
}
void r271demangling_in(T0* a1){
/*[IF*/
{/*AT*/r7extend(((T7*)a1),((T3)'R'));
}
/*FI]*/
r7extend(((T7*)a1),((T3)'\40'));
r7append(((T7*)a1),r271run_time_mark());
}
void r271gc_initialize_chunk(T2 a1,T0* a2){
r7extend(((T7*)a2),((T3)'\52'));
r271gc_store_chunk_in(a2);
r7append(((T7*)a2),((T0*)ms14_266a));
r2append_in(a1,a2);
r7append(((T7*)a2),((T0*)ms14_138));
r271gc_store_in(a2);
r7append(((T7*)a2),((T0*)ms52_1715));
r2append_in(a1,a2);
r7append(((T7*)a2),((T0*)ms52_1005));
r271gc_store_chunk_in(a2);
r7append(((T7*)a2),((T0*)ms52_11742));
r271gc_store_left_in(a2);
r7append(((T7*)a2),((T0*)ms14_266a));
r2append_in(a1,a2);
r7append(((T7*)a2),((T0*)ms52_34060));
r271gc_store_in(a2);
r7append(((T7*)a2),((T0*)ms52_2040));
}
T0* r271written_mark(void){
T0* R=NULL;
R=((T0*)ms15_4956);
return R;
}
void r35print_count(T35* C,T0* a1,T2 a2){
/*[IF*/
if((/*RF2*/(C)->_verbose/*0*/)){
/*[IF*/
if((a2)>(0)){
r35put_string(C,((T0*)ms35_4248));
r35put_string(C,a1);
/*[IF*/
if((a2)>(1)){
r35put_character(C,((T3)'s'));
}
/*FI]*/
r35put_string(C,((T0*)ms35_180));
r35put_integer(C,a2);
r35put_string(C,((T0*)ms14_112));
}
else{
r35put_string(C,((T0*)ms35_663));
r35put_string(C,a1);
r35put_string(C,((T0*)ms14_112));
}
/*FI]*/
}
/*FI]*/
}
void r35put_string(T35* C,T0* a1){
/*[IF*/
if((/*RF2*/(C)->_verbose/*0*/)){
r36put_string((T36*)(oBC1std_output),a1);
/*[IRF3.6flush*/{T36* C1=(T36*)(oBC1std_output);
fflush(stdout);
}/*]*/
}
/*FI]*/
}
void r35sfr_connect_or_exit(T35* C,T0* a1,T0* a2){
r35sfr_connect(C,a1,a2);
/*[IF*/
if(!(/*(IRF4.7is_connected*/((/*RF2*/(((T40*)a1))->_path/*1*/))!=(NULL)/*)*/)){
r35w_put_string(((T0*)ms14_3720));
r35w_put_string(a2);
r35w_put_string(((T0*)ms35_6929));
exit(1);
}
/*FI]*/
}
void r35put_integer(T35* C,T2 a1){
/*[IF*/
if((/*RF2*/(C)->_verbose/*0*/)){
r36put_integer((T36*)(oBC1std_output),a1);
/*[IRF3.6flush*/{T36* C1=(T36*)(oBC1std_output);
fflush(stdout);
}/*]*/
}
/*FI]*/
}
void r35sfr_connect(T35* C,T0* a1,T0* a2){
r35put_string(C,((T0*)ms35_26208));
r35put_string(C,a2);
r35put_string(C,((T0*)ms14_270));
r40connect_to(((T40*)a1),a2);
}
T0* r35read_word_in(T35* C,T0* a1){
T0* R=NULL;
r35put_string(C,((T0*)ms35_25179));
r35put_string(C,(/*RF2*/(((T40*)a1))->_path/*1*/));
r35put_string(C,((T0*)ms14_270));
/*[IF*/
if(r40end_of_input(((T40*)a1))){
r35w_put_string(((T0*)ms35_72306));
r35w_put_string((/*RF2*/(((T40*)a1))->_path/*1*/));
r35w_put_string(((T0*)ms14_270));
exit(1);
}
else{
r40read_word(((T40*)a1));
R=r7twin((T7*)(oBC41last_string));
}
/*FI]*/
return R;
}
void r35w_put_string(T0* a1){
r46put_string((T46*)(oBC1std_error),a1);
/*[IRF3.6flush*/{T46* C1=(T46*)(oBC1std_error);
fflush(stderr);
}/*]*/
}
void r35w_put_integer(T2 a1){
r46put_integer((T46*)(oBC1std_error),a1);
/*[IRF3.6flush*/{T46* C1=(T46*)(oBC1std_error);
fflush(stderr);
}/*]*/
}
T6 r35file_exists(T0* a1){
T6 R=0;
R=r328is_readable(a1);
return R;
}
void r35file_renaming(T35* C,T0* a1,T0* a2){
r35put_string(C,((T0*)ms35_8390));
r35put_string(C,a1);
r35put_string(C,((T0*)ms35_3084));
r35put_string(C,a2);
r35put_string(C,((T0*)ms14_270));
/*[IRF3.6rename_file*/{T0* b1=a1;
T0* b2=a2;
r328rename_to(oBC1file_tools,b1,b2);
}/*]*/
}
void r35file_removing(T35* C,T0* a1){
/*[IF*/
if(r35file_exists(a1)){
r35put_string(C,((T0*)ms35_8610));
r35put_string(C,a1);
r35put_string(C,((T0*)ms14_270));
/*[IRF3.6remove_file*/{T0* b1=a1;
r328delete(oBC1file_tools,b1);
}/*]*/
}
/*FI]*/
}
void r35w_put_character(T3 a1){
/*[IRF3.6put_character*/{T46* C1=(T46*)(oBC1std_error);
T3 b1=a1;
putc(b1,((FILE*)(stderr)));
}/*]*/
/*[IRF3.6flush*/{T46* C1=(T46*)(oBC1std_error);
fflush(stderr);
}/*]*/
}
T0*oBC1std_error=NULL;
void r35put_character(T35* C,T3 a1){
/*[IF*/
if((/*RF2*/(C)->_verbose/*0*/)){
/*[IRF3.6put_character*/{T36* C1=(T36*)(oBC1std_output);
T3 b1=a1;
putc(b1,((FILE*)(stdout)));
}/*]*/
/*[IRF3.6flush*/{T36* C1=(T36*)(oBC1std_output);
fflush(stdout);
}/*]*/
}
/*FI]*/
}
T0*oBC1std_output=NULL;
void r35put_double_format(T35* C,T5 a1,T2 a2){
/*[IF*/
if((/*RF2*/(C)->_verbose/*0*/)){
r36put_double_format((T36*)(oBC1std_output),a1,a2);
/*[IRF3.6flush*/{T36* C1=(T36*)(oBC1std_output);
fflush(stdout);
}/*]*/
}
/*FI]*/
}
void r35sfw_connect(T35* C,T0* a1,T0* a2){
r48connect_to(((T48*)a1),a2);
/*[IF*/
if(/*(IRF4.7is_connected*/((/*RF2*/(((T48*)a1))->_path/*0*/))!=(NULL)/*)*/){
r35put_string(C,((T0*)ms35_7497));
r35put_string(C,a2);
r35put_string(C,((T0*)ms35_3688));
}
else{
r35w_put_string(((T0*)ms35_21679));
r35w_put_string(a2);
r35w_put_string(((T0*)ms14_270));
exit(1);
}
/*FI]*/
}
void r214compile_to_c_old(T214* C){
T2 _i=0;
/*[IF*/
if(((/*RF2*/(C)->_list/*12*/))!=((void*)(NULL))){
_i=(/*RF2*/((T101*)((/*RF2*/(C)->_list/*12*/)))->_lower/*12*/);
while (!((_i)>((/*RF2*/((T101*)((/*RF2*/(C)->_list/*12*/)))->_upper/*8*/))))
{
r100compile_to_c_old((T100*)(r101item((T101*)((/*RF2*/(C)->_list/*12*/)),_i)));
_i=(_i)+(1);
}
}
/*FI]*/
}
T6 r214is_always_true(T214* C){
T6 R=0;
T0* _assertion=NULL;
T2 _i=0;
_i=(/*RF2*/((T101*)((/*RF2*/(C)->_list/*12*/)))->_upper/*8*/);
R=1;
while (!((!(R))||((_i)==(0))))
{
_assertion=r101item((T101*)((/*RF2*/(C)->_list/*12*/)),_i);
R=r100is_always_true(((T100*)_assertion));
_i=(_i)-(1);
}
return R;
}
T0* r214check_assertion_mode(void){
T0* R=NULL;
R=((T0*)ms214_978);
return R;
}
void r214make(T214* C,T68 a1,T0* a2,T0* a3){
(/*SFN*/C->_start_position)=a1;
(/*SFN*/C->_header_comment)=a2;
(/*SFN*/C->_list)=a3;
}
void r214add_into(T214* C,T0* a1){
T0* _a=NULL;
T2 _i=0;
/*[IF*/
if(((/*RF2*/(C)->_list/*12*/))!=((void*)(NULL))){
_i=1;
while (!((_i)>((/*RF2*/((T101*)((/*RF2*/(C)->_list/*12*/)))->_upper/*8*/))))
{
_a=r101item((T101*)((/*RF2*/(C)->_list/*12*/)),_i);
/*[IF*/
if(!(r101fast_has(((T101*)a1),_a))){
r101add_last(((T101*)a1),_a);
}
/*FI]*/
_i=(_i)+(1);
}
}
/*FI]*/
}
void r214afd_check(T214* C){
T2 _i=0;
/*[IF*/
if(((/*RF2*/(C)->_list/*12*/))!=((void*)(NULL))){
_i=(/*RF2*/((T101*)((/*RF2*/(C)->_list/*12*/)))->_upper/*8*/);
while (!((_i)==(0)))
{
r100afd_check((T100*)(r101item((T101*)((/*RF2*/(C)->_list/*12*/)),_i)));
_i=(_i)-(1);
}
}
/*FI]*/
}
void r214compile_to_c(T214* C){
T0* _assertion=NULL;
T6 _need_se_tmp=0;
T2 _i=0;
/*[IF*/
if(r214is_always_true(C)){
r325increment_static_expression_count((T325*)(oBC13cpp),r101count((T101*)((/*RF2*/(C)->_list/*12*/))));
}
else{
/*[IF*/
if(((/*RF2*/(C)->_run_feature/*20*/))==((void*)(NULL))){
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms103_51064));
/*]*/
}
else{
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms103_741));
/*]*/
/*SSPRF3*//*X334c_assertion_flag*/r368c_assertion_flag((T368*)((/*RF2*/(C)->_run_feature/*20*/)));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms103_522));
/*]*/
/*SSPRF3*//*X334c_assertion_flag*/r368c_assertion_flag((T368*)((/*RF2*/(C)->_run_feature/*20*/)));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms103_712));
/*]*/
}
/*FI]*/
_i=1;
while (!((_i)>((/*RF2*/((T101*)((/*RF2*/(C)->_list/*12*/)))->_upper/*8*/))))
{
_assertion=r101item((T101*)((/*RF2*/(C)->_list/*12*/)),_i);
/*[IF*/
if(r100is_always_true(((T100*)_assertion))){
}
else{
r100collect_c_tmp(((T100*)_assertion));
_need_se_tmp=r325se_tmp_open_declaration((T325*)(oBC13cpp));
/*[IRF3.3set_check_assertion_mode*/((((T325*)((T325*)(oBC13cpp))))->_check_assertion_mode)=(r214check_assertion_mode());
/*]*/
r100compile_to_c(((T100*)_assertion));
/*[IF*/
if(_need_se_tmp){
r325se_tmp_close_declaration((T325*)(oBC13cpp));
}
/*FI]*/
}
/*FI]*/
_i=(_i)+(1);
}
/*[IF*/
if(((/*RF2*/(C)->_run_feature/*20*/))==((void*)(NULL))){
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms103_19791));
/*]*/
}
else{
/*SSPRF3*//*X334c_assertion_flag*/r368c_assertion_flag((T368*)((/*RF2*/(C)->_run_feature/*20*/)));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms103_2184));
/*]*/
}
/*FI]*/
}
/*FI]*/
}
void r214c_declare_for_old(T214* C){
T2 _i=0;
/*[IF*/
if(((/*RF2*/(C)->_list/*12*/))!=((void*)(NULL))){
_i=(/*RF2*/((T101*)((/*RF2*/(C)->_list/*12*/)))->_lower/*12*/);
while (!((_i)>((/*RF2*/((T101*)((/*RF2*/(C)->_list/*12*/)))->_upper/*8*/))))
{
r100c_declare_for_old((T100*)(r101item((T101*)((/*RF2*/(C)->_list/*12*/)),_i)));
_i=(_i)+(1);
}
}
/*FI]*/
}
T6 r214use_current(T214* C){
T6 R=0;
T2 _i=0;
/*[IF*/
if(((/*RF2*/(C)->_list/*12*/))!=((void*)(NULL))){
_i=(/*RF2*/((T101*)((/*RF2*/(C)->_list/*12*/)))->_upper/*8*/);
while (!((R)||((_i)==(0))))
{
R=r100use_current((T100*)(r101item((T101*)((/*RF2*/(C)->_list/*12*/)),_i)));
_i=(_i)-(1);
}
}
/*FI]*/
return R;
}
void r214make_runnable(T214* C,T68 a1,T0* a2,T0* a3,T0* a4){
(/*SFN*/C->_start_position)=a1;
(/*SFN*/C->_list)=a2;
(/*SFN*/C->_current_type)=a3;
(/*SFN*/C->_run_feature)=a4;
}
void r386default_mapping_procedure(T386* C){
r386default_mapping_function(C);
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms14_138));
/*]*/
}
T2 r386id(T386* C){
T2 R=0;
R=X52id((/*RF2*/(C)->_current_type/*8*/));
return R;
}
void r386afd_check(T386* C){
r386routine_afd_check(C);
r49afd_check_deferred((T0*)C);
}
void r386collect_c_tmp(T386* C){
T0* _rt=NULL;
_rt=(/*RF2*/(C)->_result_type/*32*/);
/*[IF*/
if(((_rt)!=((void*)(NULL)))&&(X52is_user_expanded(_rt))){
/*[IF*/
if(X52is_dummy_expanded(_rt)){
}
else{
r325se_tmp_add((T0*)C);
}
/*FI]*/
}
/*FI]*/
}
void r386fall_down(T386* C){
T0* _rf=NULL;
T0* _sub_name=NULL;
T0* _sub_bc=NULL;
T0* _current_bc=NULL;
T0* _sub_rc=NULL;
T0* _current_rc=NULL;
T2 _i=0;
T0* _running=NULL;
_current_rc=X52run_class((/*RF2*/(C)->_current_type/*8*/));
_running=(/*RF2*/(((T50*)_current_rc))->_running/*9*/);
/*[IF*/
if((_running)!=((void*)(NULL))){
_current_bc=X52base_class((/*RF2*/(C)->_current_type/*8*/));
_i=(/*RF2*/(((T53*)_running))->_lower/*12*/);
while (!((_i)>((/*RF2*/(((T53*)_running))->_upper/*8*/))))
{
_sub_rc=r53item(((T53*)_running),_i);
/*[IF*/
if((_sub_rc)!=((void*)(_current_rc))){
_sub_bc=X52base_class((/*RF2*/(((T50*)_sub_rc))->_current_type/*0*/));
_sub_name=r51new_name_of(((T51*)_sub_bc),_current_bc,(/*RF2*/(C)->_name/*12*/));
_rf=r50get_feature(((T50*)_sub_rc),_sub_name);
}
/*FI]*/
_i=(_i)+(1);
}
}
/*FI]*/
}
void r386c_define(T386* C){
/*[IF*/
if(r47no_check((T47*)(oBC13run_control))){
r386define_prototype(C);
r386c_define_opening(C);
r325put_error0((T325*)(oBC13cpp),((T0*)ms386_38160));
r386c_define_closing(C);
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms14_270a));
/*]*/
r386c_frame_descriptor(C);
}
/*FI]*/
}
T0* r386clients(T386* C){
T0* R=NULL;
T0* _bfbc=NULL;
T0* _bc=NULL;
/*[IF*/
if(((/*RF2*/(C)->_clients_memory/*4*/))==((void*)(NULL))){
_bc=X52base_class((/*RF2*/(C)->_current_type/*8*/));
_bfbc=/*SSWARF2*//*X284base_class*/(/*RF2*/((T287*)((/*RF2*/(C)->_base_feature/*24*/)))->_base_class/*4*/);
/*[IF*/
if((_bc)==((void*)(_bfbc))){
R=/*SSWARF2*//*X284clients*/(/*RF2*/((T287*)((/*RF2*/(C)->_base_feature/*24*/)))->_clients/*16*/);
}
else{
R=r51clients_for(((T51*)_bc),(/*RF2*/(C)->_name/*12*/));
}
/*FI]*/
(/*SFN*/C->_clients_memory)=R;
}
else{
R=(/*RF2*/(C)->_clients_memory/*4*/);
}
/*FI]*/
return R;
}
void r386put_c_name_tag(T386* C){
T0* _fn=NULL;
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\42');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
_fn=/*SSFRF4*//*X284first_name*//*(IRF4.6first_name*/(/*RF2*/(((T83*)((/*RF2*/((T287*)((/*RF2*/(C)->_base_feature/*24*/)))->_names/*8*/))))->_first/*0*/)/*)*/;
/*[IF*/
if((X82to_key(_fn))!=((void*)(X82to_key((/*RF2*/(C)->_name/*12*/))))){
X82put_cpp_tag((/*RF2*/(C)->_name/*12*/));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),X82to_string((/*RF2*/(C)->_name/*12*/)));
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\40');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
X82put_cpp_tag(_fn);
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),X82to_string(_fn));
/*]*/
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms334_1108));
/*]*/
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),(/*RF2*/((T61*)(/*SSFRF4*//*X284base_class_name*//*(IRF4.6base_class_name*/(/*RF2*/(((T51*)((/*RF2*/((T287*)((/*RF2*/(C)->_base_feature/*24*/)))->_base_class/*4*/))))->_name/*18*/)/*)*/))->_to_string/*8*/));
/*]*/
/*[IF*/
if((X82to_key(_fn))!=((void*)(X82to_key((/*RF2*/(C)->_name/*12*/))))){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\42');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
void r386address_of_c_define(T386* C,T0* a1){
{T68 se_tmp0;
r66add_position((*(se_tmp0=r150start_position(((T150*)a1)),&se_tmp0)));
}
{T68 se_tmp0;
r66add_position((*(se_tmp0=r386start_position(C),&se_tmp0)));
}
r386fatal_error(((T0*)ms386_110836));
}
T0* r386run_ensure(T386* C){
T0* R=NULL;
R=r51run_ensure((T51*)(X52base_class((/*RF2*/(C)->_current_type/*8*/))),(T0*)C);
return R;
}
void r386default_mapping_function(T386* C){
T6 _tcbd=0;
T6 _uc=0;
T6 _no_check=0;
_no_check=r47no_check((T47*)(oBC13run_control));
_uc=r386use_current(C);
/*[IF*/
if(!(_uc)){
_tcbd=r325target_cannot_be_dropped((T325*)(oBC13cpp));
/*[IF*/
if(_tcbd){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\54');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
}
/*FI]*/
r386mapping_name(C);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\50');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IF*/
if(_no_check){
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms334_759));
/*]*/
}
/*FI]*/
/*[IF*/
if(_uc){
/*[IF*/
if(_no_check){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\54');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
r325put_target_as_target((T325*)(oBC13cpp));
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_arguments/*28*/))!=((void*)(NULL))){
/*[IF*/
if((_uc)||(_no_check)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\54');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
r325put_arguments((T325*)(oBC13cpp));
}
/*FI]*/
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
/*[IF*/
if((!(_uc))&&(_tcbd)){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
}
void r386make(T386* C,T0* a1,T0* a2,T0* a3){
(/*SFN*/C->_current_type)=a1;
(/*SFN*/C->_name)=a2;
(/*SFN*/C->_base_feature)=a3;
r50add_rf((T50*)(r386run_class(C)),(T0*)C,X82to_key(a2));
r49incr_magic_count((T49*)(oBC13small_eiffel));
(/*SFN*/C->_use_current_state)=23;
(/*SFN*/C->_stupid_switch_state)=23;
r49push((T49*)(oBC13small_eiffel),(T0*)C);
r386initialize(C);
r49pop((T49*)(oBC13small_eiffel));
}
void r386c_assertion_flag(T386* C){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC334c_code))))->_count)=(0);
/*]*/
r386c_frame_descriptor_name_in(C,oBC334c_code);
r7append((T7*)(oBC334c_code),((T0*)ms334_30285));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),oBC334c_code);
/*]*/
}
void r386c_define_opening(T386* C){
T0* _oresult=NULL;
T6 _ensure_check=0;
T6 _no_check=0;
T0* _t=NULL;
_no_check=r47no_check((T47*)(oBC13run_control));
_ensure_check=r47ensure_check((T47*)(oBC13run_control));
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
/*AF*/if(((/*RF2*/(C)->_result_type/*32*/))!=((void*)(NULL))){
_t=X52run_type((/*RF2*/(C)->_result_type/*32*/));
/*[IRF3.3clear*/((((T7*)((T7*)(oBC334c_code))))->_count)=(0);
/*]*/
X52c_type_for_result_in(_t,oBC334c_code);
r7append((T7*)(oBC334c_code),((T0*)ms334_525));
X52c_initialize_in(_t,oBC334c_code);
r7append((T7*)(oBC334c_code),((T0*)ms14_138));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),oBC334c_code);
/*]*/
/*[IF*/
if(_no_check){
r7append((T7*)(oBC13c_frame_descriptor_locals),((T0*)ms334_10538));
r203increment((T203*)(oBC13c_frame_descriptor_local_count));
r7append((T7*)(oBC13c_frame_descriptor_format),((T0*)ms15_7314));
X52c_frame_descriptor(_t);
}
/*FI]*/
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(_ensure_check){
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*40*/))!=((void*)(NULL))){
r214c_declare_for_old((T214*)((/*RF2*/(C)->_ensure_assertion/*40*/)));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(_no_check){
/*[IF*/
if(((/*RF2*/((T203*)(oBC13c_frame_descriptor_local_count))->_value/*0*/))>(0)){
r7copy((T7*)(oBC334c_code),((T0*)ms334_21567));
/*[IRF3.5append_in*/r2append_in(((T2)((/*RF2*/((T203*)(oBC13c_frame_descriptor_local_count))->_value/*0*/))),oBC334c_code);
/*]*/
r7extend((T7*)(oBC334c_code),((T3)'\135'));
r7append((T7*)(oBC334c_code),((T0*)ms14_138));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),oBC334c_code);
/*]*/
}
/*FI]*/
r386c_initialize_ds_one_by_one(C);
/*[IRF3.2c_initialize_locals_one_by_one*/{T3 _c=0;
T2 _j=0;
T2 _i=0;
_j=1;
while (!(((/*RF2*/((T203*)(oBC13c_frame_descriptor_local_count))->_value/*0*/))==(_i)))
{
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms334_8120));
/*]*/
/*[IRF3.5put_integer*/r48put_integer(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),_i);
/*]*/
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms334_308));
/*]*/
_c=/*(IRF4.6item*/((/*RF2*/((T7*)(oBC13c_frame_descriptor_locals))->_storage/*0*/))[(_j)-(1)]/*)*/;
while (!((_c)==(((T3)'\54'))))
{
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=_c;
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
_j=(_j)+(1);
_c=/*(IRF4.6item*/((/*RF2*/((T7*)(oBC13c_frame_descriptor_locals))->_storage/*0*/))[(_j)-(1)]/*)*/;
}
_j=(_j)+(1);
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms14_138));
/*]*/
_i=(_i)+(1);
}
}/*]*/
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms334_14520a));
/*]*/
}
/*FI]*/
/*[IF*/
if(_ensure_check){
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*40*/))!=((void*)(NULL))){
r214compile_to_c_old((T214*)((/*RF2*/(C)->_ensure_assertion/*40*/)));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_require_assertion/*36*/))!=((void*)(NULL))){
r376compile_to_c((T376*)((/*RF2*/(C)->_require_assertion/*36*/)));
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
void r386c_define_closing(T386* C){
/*[IF*/
if(r47ensure_check((T47*)(oBC13run_control))){
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*40*/))!=((void*)(NULL))){
r214compile_to_c((T214*)((/*RF2*/(C)->_ensure_assertion/*40*/)));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(r386use_current(C)){
/*[IF*/
if((X82to_string((/*RF2*/(C)->_name/*12*/)))!=((void*)(((T0*)ms15_8750)))){
r325current_class_invariant((/*RF2*/(C)->_current_type/*8*/));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(r47no_check((T47*)(oBC13run_control))){
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms334_19400));
/*]*/
}
/*FI]*/
}
void r386initialize(T386* C){
(/*SFN*/C->_result_type)=X284result_type((/*RF2*/(C)->_base_feature/*24*/));
(/*SFN*/C->_arguments)=/*SSWARF2*//*X284arguments*/(/*RF2*/((T287*)((/*RF2*/(C)->_base_feature/*24*/)))->_arguments/*20*/);
/*[IF*/
if(((/*RF2*/(C)->_result_type/*32*/))!=((void*)(NULL))){
/*[IF*/
if(X52is_like_argument((/*RF2*/(C)->_result_type/*32*/))){
/*[IF*/
if(!(r178is_runnable((T178*)((/*RF2*/(C)->_arguments/*28*/)),(/*RF2*/(C)->_current_type/*8*/)))){
{T178*n=((T178*)malloc(sizeof(*n))/*12*/);
*n=M178;
r178with(n,(/*RF2*/(C)->_arguments/*28*/),(/*RF2*/(C)->_current_type/*8*/));
(/*SFN*/C->_arguments)=((T0*)n);
}
}
/*FI]*/
(/*SFN*/C->_result_type)=X52to_runnable((/*RF2*/(C)->_result_type/*32*/),(/*RF2*/(C)->_current_type/*8*/));
}
else{
(/*SFN*/C->_result_type)=X52to_runnable((/*RF2*/(C)->_result_type/*32*/),(/*RF2*/(C)->_current_type/*8*/));
/*[IF*/
if(((/*RF2*/(C)->_arguments/*28*/))!=((void*)(NULL))){
/*[IF*/
if(!(r178is_runnable((T178*)((/*RF2*/(C)->_arguments/*28*/)),(/*RF2*/(C)->_current_type/*8*/)))){
{T178*n=((T178*)malloc(sizeof(*n))/*12*/);
*n=M178;
r178with(n,(/*RF2*/(C)->_arguments/*28*/),(/*RF2*/(C)->_current_type/*8*/));
(/*SFN*/C->_arguments)=((T0*)n);
}
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
}
else if(((/*RF2*/(C)->_arguments/*28*/))!=((void*)(NULL))){
/*[IF*/
if(!(r178is_runnable((T178*)((/*RF2*/(C)->_arguments/*28*/)),(/*RF2*/(C)->_current_type/*8*/)))){
{T178*n=((T178*)malloc(sizeof(*n))/*12*/);
*n=M178;
r178with(n,(/*RF2*/(C)->_arguments/*28*/),(/*RF2*/(C)->_current_type/*8*/));
(/*SFN*/C->_arguments)=((T0*)n);
}
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*RF2*/((T49*)(oBC13small_eiffel))->_short_flag/*5*/)){
(/*SFN*/C->_require_assertion)=r386run_require(C);
(/*SFN*/C->_ensure_assertion)=r386run_ensure(C);
}
/*FI]*/
}
void r386compute_stupid_switch(T386* C,T0* a1){
(/*SFN*/C->_stupid_switch_state)=21;
}
void r386mapping_c(T386* C){
/*[IF*/
if(r47no_check((T47*)(oBC13run_control))){
/*[IF*/
if(((/*RF2*/(C)->_result_type/*32*/))==((void*)(NULL))){
r386default_mapping_procedure(C);
}
else{
r386default_mapping_function(C);
}
/*FI]*/
}
else if(((/*RF2*/(C)->_result_type/*32*/))!=((void*)(NULL))){
X52c_initialize((/*RF2*/(C)->_result_type/*32*/));
}
/*FI]*/
}
void r386routine_afd_check(T386* C){
/*[IF*/
if(((/*RF2*/(C)->_require_assertion/*36*/))!=((void*)(NULL))){
r376afd_check((T376*)((/*RF2*/(C)->_require_assertion/*36*/)));
}
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
/*AF*//*AE*/
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_ensure_assertion/*40*/))!=((void*)(NULL))){
r214afd_check((T214*)((/*RF2*/(C)->_ensure_assertion/*40*/)));
}
/*FI]*/
}
T68 r386start_position(T386* C){
T68 R={NULL,0};
{T68 se_tmp0;
R=(*(se_tmp0=X284start_position((/*RF2*/(C)->_base_feature/*24*/)),&se_tmp0));
}
return R;
}
T0* r386run_require(T386* C){
T0* R=NULL;
R=r51run_require((T51*)(X52base_class((/*RF2*/(C)->_current_type/*8*/))),(T0*)C);
return R;
}
void r386mapping_name(T386* C){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC334c_code))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC334c_code),((T3)'r'));
r2append_in(r386id(C),oBC334c_code);
X82mapping_c_in((/*RF2*/(C)->_name/*12*/),oBC334c_code);
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),oBC334c_code);
/*]*/
}
void r386c_initialize_ds_one_by_one(T386* C){
r7copy((T7*)(oBC334c_code),((T0*)ms334_36950));
r386c_frame_descriptor_name_in(C,oBC334c_code);
r7append((T7*)(oBC334c_code),((T0*)ms14_138));
/*[IF*/
if(r386use_current(C)){
r7append((T7*)(oBC334c_code),((T0*)ms334_18175));
}
else{
r7append((T7*)(oBC334c_code),((T0*)ms334_10999));
}
/*FI]*/
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),oBC334c_code);
/*]*/
{T68 se_tmp0;
r325put_position_in_ds((*(se_tmp0=r386start_position(C),&se_tmp0)));
}
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms334_11466));
/*]*/
/*[IF*/
if(((/*RF2*/((T203*)(oBC13c_frame_descriptor_local_count))->_value/*0*/))>(0)){
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms334_11880));
/*]*/
}
/*FI]*/
}
T6 r386use_current(T386* C){
T6 R=0;
{int z1=(/*RF2*/(C)->_use_current_state/*16*/);
if((22==z1)){
R=1;
}
else
if((21==z1)){
}
else
if((23==z1)){
(/*SFN*/C->_use_current_state)=24;
/*[IRF3.3compute_use_current*/((((T386*)(C)))->_use_current_state)=(22);
/*]*/
R=((/*RF2*/(C)->_use_current_state/*16*/))==(22);
}
else {R=1;
}}
return R;
}
T6 r386is_exported_in(T386* C,T0* a1){
T6 R=0;
R=r99gives_permission_to((T99*)(r386clients(C)),a1);
return R;
}
T0* r386run_class(T386* C){
T0* R=NULL;
R=X52run_class((/*RF2*/(C)->_current_type/*8*/));
return R;
}
void r386fatal_error(T0* a1){
/*[IRF3.6append*/{T0* b1=a1;
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_fatal_error((T66*)(oBC13eh));
}
T0* r386stupid_switch(T386* C,T0* a1){
T0* R=NULL;
{int z1=(/*RF2*/(C)->_stupid_switch_state/*20*/);
if((22==z1)){
R=((T0*)ms386_5579);
}
else
if((21==z1)){
}
else
if((23==z1)){
(/*SFN*/C->_stupid_switch_state)=24;
r386compute_stupid_switch(C,a1);
/*[IF*/
if(((/*RF2*/(C)->_stupid_switch_state/*20*/))==(22)){
R=((T0*)ms386_5579);
}
/*FI]*/
}
else {}}
return R;
}
void r386define_prototype(T386* C){
T6 _no_check=0;
T2 _mem_id=0;
_no_check=r47no_check((T47*)(oBC13run_control));
/*[IF*/
if(r47no_check((T47*)(oBC13run_control))){
/*[IRF3.3reset*/((((T203*)((T203*)(oBC13c_frame_descriptor_local_count))))->_value)=(0);
/*]*/
/*[IRF3.3clear*/((((T7*)((T7*)(oBC13c_frame_descriptor_format))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC13c_frame_descriptor_format),((T3)'\42'));
/*[IRF3.3clear*/((((T7*)((T7*)(oBC13c_frame_descriptor_locals))))->_count)=(0);
/*]*/
}
/*FI]*/
_mem_id=r386id(C);
/*[IRF3.3clear*/((((T7*)((T7*)(oBC334c_code))))->_count)=(0);
/*]*/
/*[IF*/
if(((/*RF2*/(C)->_result_type/*32*/))==((void*)(NULL))){
r7append((T7*)(oBC334c_code),((T0*)ms14_1736a));
}
else{
X52c_type_for_result_in(X52run_type((/*RF2*/(C)->_result_type/*32*/)),oBC334c_code);
}
/*FI]*/
r7extend((T7*)(oBC334c_code),((T3)'\40'));
r7extend((T7*)(oBC334c_code),((T3)'r'));
r2append_in(_mem_id,oBC334c_code);
X82mapping_c_in((/*RF2*/(C)->_name/*12*/),oBC334c_code);
r7extend((T7*)(oBC334c_code),((T3)'\50'));
/*[IF*/
if(_no_check){
r7append((T7*)(oBC334c_code),((T0*)ms334_56160));
/*[IF*/
if((r386use_current(C))||(((/*RF2*/(C)->_arguments/*28*/))!=((void*)(NULL)))){
r7extend((T7*)(oBC334c_code),((T3)'\54'));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(r386use_current(C)){
X52c_type_for_target_in((/*RF2*/(C)->_current_type/*8*/),oBC334c_code);
r7extend((T7*)(oBC334c_code),((T3)'\40'));
r7extend((T7*)(oBC334c_code),((T3)'C'));
X52c_frame_descriptor((/*RF2*/(C)->_current_type/*8*/));
/*[IF*/
if(((/*RF2*/(C)->_arguments/*28*/))!=((void*)(NULL))){
r7extend((T7*)(oBC334c_code),((T3)'\54'));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(((/*RF2*/(C)->_arguments/*28*/))==((void*)(NULL))){
/*[IF*/
if(_no_check){
}
else if(!(r386use_current(C))){
r7append((T7*)(oBC334c_code),((T0*)ms14_1736a));
}
/*FI]*/
}
else{
r178compile_to_c_in((T178*)((/*RF2*/(C)->_arguments/*28*/)),oBC334c_code);
}
/*FI]*/
r7extend((T7*)(oBC334c_code),((T3)'\51'));
r325put_c_heading((T325*)(oBC13cpp),oBC334c_code);
/*[IRF3.3swap_on_c*/((((T325*)((T325*)(oBC13cpp))))->_current_out)=(oBC325out_c);
/*]*/
}
void r386c_frame_descriptor(T386* C){
/*[IF*/
if(r47no_check((T47*)(oBC13run_control))){
r7copy((T7*)(oBC334c_code),((T0*)ms334_23340));
r386c_frame_descriptor_name_in(C,oBC334c_code);
r325put_extern7((T325*)(oBC13cpp),oBC334c_code);
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\173');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
r386put_c_name_tag(C);
/*[IRF3.3clear*/((((T7*)((T7*)(oBC334c_code))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC334c_code),((T3)'\54'));
/*[IF*/
if(r386use_current(C)){
r7extend((T7*)(oBC334c_code),((T3)'1'));
}
else{
r7extend((T7*)(oBC334c_code),((T3)'0'));
}
/*FI]*/
r7extend((T7*)(oBC334c_code),((T3)'\54'));
/*[IRF3.5append_in*/r2append_in(((T2)((/*RF2*/((T203*)(oBC13c_frame_descriptor_local_count))->_value/*0*/))),oBC334c_code);
/*]*/
r7extend((T7*)(oBC334c_code),((T3)'\54'));
r7append((T7*)(oBC334c_code),oBC13c_frame_descriptor_format);
r7append((T7*)(oBC334c_code),((T0*)ms334_2226));
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),oBC334c_code);
/*]*/
}
/*FI]*/
}
void r386fe_vffd7(T386* C){
{T68 se_tmp0;
r66add_position((*(se_tmp0=X52start_position((/*RF2*/(C)->_result_type/*32*/)),&se_tmp0)));
}
r386fatal_error(((T0*)ms334_203069));
}
void r386c_frame_descriptor_name_in(T386* C,T0* a1){
r7extend(((T7*)a1),((T3)'f'));
r2append_in(r386id(C),a1);
X82mapping_c_in((/*RF2*/(C)->_name/*12*/),a1);
}
void r179refer_to(T179* C,T68 a1,T0* a2,T2 a3){
(/*SFN*/C->_start_position)=a1;
(/*SFN*/C->_formal_arg_list)=a2;
(/*SFN*/C->_rank)=a3;
}
T0* r179add_comment(T179* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r44count(((T44*)((/*RF2*/(((T81*)a1))->_list/*8*/))))/*)*/)==(0))){
R=((T0*)(C));
}
else{
{T229*n=((T229*)malloc(sizeof(*n))/*12*/);
*n=M229;
r229make(n,(T0*)C,a1);
R=((T0*)n);
}
}
/*FI]*/
return R;
}
void r179with(T179* C,T0* a1,T0* a2){
*((T179*)(C))=*((T179*)(a1));
(/*SFN*/C->_formal_arg_list)=a2;
}
void r179mapping_c_target(T179* C,T0* a1){
T0* _rt=NULL;
T6 _flag=0;
_flag=r325call_invariant_start(a1);
_rt=X52run_type(r179result_type(C));
/*[IF*/
if(X52is_reference(_rt)){
/*[IF*/
if(X52is_reference(a1)){
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms14_492));
/*]*/
/*[IRF3.5put_integer*/r48put_integer(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),X52id(a1));
/*]*/
/*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms14_166));
/*]*/
r325print_argument((T325*)(oBC13cpp),(/*RF2*/(C)->_rank/*12*/));
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
else{
r325print_argument((T325*)(oBC13cpp),(/*RF2*/(C)->_rank/*12*/));
}
/*FI]*/
}
else if(X52is_reference(a1)){
r325print_argument((T325*)(oBC13cpp),(/*RF2*/(C)->_rank/*12*/));
}
else if(X52is_user_expanded(_rt)){
/*[IF*/
if(!(X52is_dummy_expanded(_rt))){
/*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
T3 b1=((T3)'\46');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
r325print_argument((T325*)(oBC13cpp),(/*RF2*/(C)->_rank/*12*/));
}
else{
r325print_argument((T325*)(oBC13cpp),(/*RF2*/(C)->_rank/*12*/));
}
/*FI]*/
/*[IF*/
if(_flag){
/*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T48* C1=(T48*)(oBC325out_c);
T3 b1=((T3)'\51');
putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
}/*]*/
/*]*/
}
/*FI]*/
}
T0* r179to_runnable(T179* C,T0* a1){
T0* R=NULL;
T0* _fal=NULL;
T0* _rf=NULL;
_rf=r49top_rf((T49*)(oBC13small_eiffel));
_fal=X334arguments(_rf);
/*[IF*/
if(((/*RF2*/(C)->_formal_arg_list/*16*/))==((void*)(_fal))){
R=((T0*)(C));
}
else{
{T179*n=((T179*)malloc(sizeof(*n))/*20*/);
*n=M179;
r179with(n,(T0*)C,_fal);
R=((T0*)n);
}
}
/*FI]*/
return R;
}
T2 r179to_integer(T179* C){
T2 R=0;
r179error((/*RF2*/(C)->_start_position/*4*/),((T0*)ms14_45441));
return R;
}
T0* r179to_string(T179* C){
T0* R=NULL;
R=(/*RF2*/((T181*)(/*(IRF4.6name*/r182item(((T182*)((/*RF2*/((T178*)((/*RF2*/(C)->_formal_arg_list/*16*/)))->_flat_list/*8*/))),(/*RF2*/(C)->_rank/*12*/))/*)*/))->_to_string/*12*/);
return R;
}
void r179error(T68 a1,T0* a2){
r66add_position(a1);
/*[IRF3.6append*/{T0* b1=a2;
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_error((T66*)(oBC13eh));
}
T0* r179result_type(T179* C){
T0* R=NULL;
R=r178type((T178*)((/*RF2*/(C)->_formal_arg_list/*16*/)),(/*RF2*/(C)->_rank/*12*/));
return R;
}
T0* r179static_result_base_class(T179* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=X52static_base_class_name(r179result_type(C));
/*[IF*/
if((_bcn)!=((void*)(NULL))){
R=r61base_class(((T61*)_bcn));
}
/*FI]*/
return R;
}
T6 r179stupid_switch(T179* C,T0* a1){
T6 R=0;
/*[IF*/
if(r49stupid_switch(r179result_type(C),a1)){
R=1;
}
/*FI]*/
return R;
}
T0* r21key_for_prefix_infix(T0* a1,T0* a2){
T0* R=NULL;
T3 _c=0;
T2 _i=0;
r7copy((T7*)(((T0*)ms21_107916)),a1);
_i=1;
while (!((_i)>((/*RF2*/(((T7*)a2))->_count/*4*/))))
{
_c=/*(IRF4.6item*/((/*RF2*/(((T7*)a2))->_storage/*0*/))[(_i)-(1)]/*)*/;
/*[IF*/
if(r3is_letter(_c)){
r7extend((T7*)(((T0*)ms21_107916)),_c);
}
else{
r2append_in(T3code(_c),((T0*)ms21_107916));
}
/*FI]*/
_i=(_i)+(1);
}
R=r21item(((T0*)ms21_107916));
return R;
}
T0* r21item(T0* a1){
T0* R=NULL;
/*[IF*/
if(r23has((T23*)(oBC21memory),a1)){
R=r23at((T23*)(oBC21memory),a1);
}
else{
R=r7twin(((T7*)a1));
r23put((T23*)(oBC21memory),R,R);
}
/*FI]*/
return R;
}
T0* r21for_prefix(T0* a1){
T0* R=NULL;
R=r21key_for_prefix_infix(((T0*)ms21_1660),a1);
return R;
}
void r21add2(T0* a1){
/*[IF*/
if((/*RF2*/((T34*)(oBC13eiffel_parser))->_case_insensitive/*0*/)){
r7to_lower(((T7*)a1));
}
/*FI]*/
/*[IRF3.6add1*/{T0* b1=a1;
r23put((T23*)(oBC21memory),b1,b1);
}/*]*/
}
T0* r21for_infix(T0* a1){
T0* R=NULL;
R=r21key_for_prefix_infix(((T0*)ms21_1688),a1);
return R;
}
T0*oBC21memory=NULL;
T0* r197to_cst_att_character(T197* C,T0* a1){
T0* R=NULL;
r197to_cst_att_check_result_type(C);
/*[IF*/
if(X52is_character((/*RF2*/(*C)._type/*4*/))){
{T205*n=((T205*)malloc(sizeof(*n))/*28*/);
*n=M205;
r205make(n,r197n(),(/*RF2*/(*C)._type/*4*/),a1);
R=((T0*)n);
}
}
else{
{T68 se_tmp0;
r197error((*(se_tmp0=X52start_position((/*RF2*/(*C)._type/*4*/)),&se_tmp0)),((T0*)ms197_157734));
}
}
/*FI]*/
return R;
}
void r197error(T68 a1,T0* a2){
r66add_position(a1);
/*[IRF3.6append*/{T0* b1=a2;
r7append((T7*)(oBC66explanation),b1);
}/*]*/
r66print_as_error((T66*)(oBC13eh));
}